我正在尝试使用nodejs的加密模块获取文档的哈希值。
有2个函数,第一个函数将使用文件路径调用第二个函数,第二个函数将返回相应文件的哈希值。
const crypto = require("crypto");
const fs = require("fs");
const path = require("path");
// change the algo to sha1, sha256 etc according to your requirements
const algo = "sha256";
const shasum = crypto.createHash(algo);
const hashTable = () => {
let filePath = path.join("D:/Program/", "test.txt");
let hash = generateHash(filePath);
console.log(hash);
}
const generateHash = (filePath) => {
const document = fs.ReadStream(filePath);
document.on("data", async function(d) {
shasum.update(d);
});
document.on("end", function() {
const hash = shasum.digest("hex");
console.log(hash);
return hash;
});
return 0;
}
hashTable();
它总是返回0而不是哈希值。我知道事件侦听器尚未完成其任务。
如何等待事件侦听器返回哈希?我尝试使generateHash函数异步(异步),但是它不起作用。
谢谢!