【发布时间】:2020-05-16 07:41:52
【问题描述】:
我正在尝试用这段代码在 JS 中对文件进行哈希处理:
var CryptoJS = require("crypto-js");
var fs = require('fs');
fs.readFile('./file.txt', function(err,data){
if(err) {
console.error("Could not open file: %s", err);
process.exit(1);
}
console.log("HASH: " + CryptoJS.SHA256(data));
});
无论我在 .txt 中写入什么,生成的哈希始终是:4ea5c508a6566e76240543f8feb06fd457777be39549c4016436afda65d2330e
如果我将一些字符串数据放入 CryptoJS.SHA256("text_exemple") 中,则哈希可以正常工作。
我在这里错过了什么?
【问题讨论】:
-
根据the documentation,如果不传递编码,
data是原始缓冲区,而不是字符串。 -
试试
fs.readFile('./file.txt', "utf8", function(err,data){...}。虽然,我认为缓冲区应该仍然更改哈希。 -
感谢@zero298,它成功了!
-
@zero298 想要发布答案,以便 RAFAEL DA SILVA 将其标记为已解决?
标签: node.js file hash sha256 cryptojs