首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SHA1库-相同二进制文件上的不同哈希

SHA1库-相同二进制文件上的不同哈希
EN

Stack Overflow用户
提问于 2015-03-25 20:34:07
回答 1查看 544关注 0票数 0

当我用文本文件调用该工具时,一切正常。但是,当我传递二进制结果时,结果总是不同的。我必须使用一些js库,比如jssha,因为我的代码应该在多个平台上运行等等。二进制文件处理是必需的。

哪里出错了?

节点

代码语言:javascript
复制
var crypto = require('crypto')
  , shasum = crypto.createHash('sha1');
var fs = require('fs');
var args = process.argv.slice(2);


console.time('readFile');
var data = fs.readFileSync(args[0],'utf8').toString();
console.timeEnd('readFile');

console.time('sha1');
shasum.update(data);
var hash = shasum.digest('base64');
console.timeEnd('sha1');

console.log(hash);

jssha

代码语言:javascript
复制
var jsSHA = require('jssha')
var fs = require('fs');
var args = process.argv.slice(2);

console.time('readFile');
var data = fs.readFileSync(args[0],'utf8').toString();
console.timeEnd('readFile');

console.time('sha1');
var shaObj = new jsSHA(data, "TEXT");
var hash = shaObj.getHash("SHA-1", "B64");
console.timeEnd('sha1');

console.log(hash);

更新

Node和jsSha的解决方案是我下面的答案。看起来,SHA-1的所有JS实现对二进制数据的工作方式都有点不同。

EN

Stack Overflow用户

发布于 2015-03-26 11:36:36

我找到了Node和jsSHA的解决方案。

节点

代码语言:javascript
复制
var crypto = require('crypto')
  , shasum = crypto.createHash('sha1');
var fs = require('fs');
var args = process.argv.slice(2);


console.time('readFile');
var data = fs.readFileSync(args[0]);
console.timeEnd('readFile');

console.time('sha1');
shasum.update(data);
var hash = shasum.digest('base64');
console.timeEnd('sha1');

console.log(hash);

jsSHA

代码语言:javascript
复制
var jsSHA = require('jssha')
var fs = require('fs');
var args = process.argv.slice(2);

console.time('readFile');
var data = fs.readFileSync(args[0]).toString('hex');
console.timeEnd('readFile');

console.time('sha1');
var shaObj = new jsSHA(data, "HEX");
var hash = shaObj.getHash("SHA-1", "B64");
console.timeEnd('sha1');

console.log(hash);
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29265975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档