问题
In my node.js app I would like to upload a file and calculate the sha1 .
I tried the following :
export function calculateHash(file, type){
const reader = new FileReader();
var hash = crypto.createHash('sha1');
hash.setEncoding('hex');
const testfile = reader.readAsDataURL(file);
hash.write(testfile);
hash.end();
var sha1sum = hash.read();
console.log(sha1sum);
// fd.on((end) => {
// hash.end();
// const test = hash.read();
// });
}
The file is blob from selecting a file with a file upload button on my website.
How can I calculate the sha1 hash?
回答1:
if you're reading the contents in as a block, you're making this harder than it needs to be. We do this:
const fs = require('fs');
export function calculateHash(file, type){
const testfile = fs.readFileSync(file);
var sha1sum = crypto.createHash('sha1').update(testFile).digest("hex");
console.log(sha1sum);
}
来源:https://stackoverflow.com/questions/37849779/how-to-calculate-the-sha1-hash-of-a-blob-using-node-js-crypto