NodeJS:crypto-js 输出与 bash 不同的 md5 散列

NodeJS: crypto-js ouputs a different md5 hash than bash

所以我有如下JS代码:

const Crypto = require("crypto-js");
const jsonFile = require('path/to/file.json');


console.log(Crypto.MD5(JSON.stringify(jsonFile)).toString());

问题是 console.log 生成的哈希值与我对 bash 中的文件进行 md5 时不同:

md5sum /path/to/file.json

我试过在 toString 中传递不同的编码,对 javascript 对象本身进行散列等,但到目前为止我无法获得匹配的散列。

我怀疑导入然后重新格式化您的内容没有帮助。我可以通过简单地将文件作为字符串读取来获得相同的哈希值:

const fs = require('fs');
const Crypto = require("crypto-js");

const data = fs.readFileSync('./input', 'utf8')
console.log(Crypto.MD5(data).toString())