2014-10-02 62 views
1

必须有一些简单的我想念。我不确定,为什么SHA总和不匹配。总和在Linux命令行上使用nodejsshasum生成。nodejs - shasum mismatch

[email protected]:~$ nodejs 
> var c = require('crypto') 
undefined 
> c.createHash('sha1').update('Hello world!','ascii').digest('hex') 
'd3486ae9136e7856bc42212385ea797094475802' 

[email protected]:~$ shasum - 
Hello world! 
47a013e660d408619d894b20806b1d5086aab03b - 

我做了不同的选择,如asciiutf-8nodejsshasum尝试;但是,存在不匹配。当然,对于简单的英文文本,asciiutf-8应该没有关系。

尽管生成和使用哈希的应用程序将是nodejs应用程序;所以,这可能无关紧要。但是,我无法解决这个数目会有所不同的事实。

你能指导我吗?

回答

2

您的shasum正在增加一个新的换行符(\n)。

$ echo Hello world! | shasum 
47a013e660d408619d894b20806b1d5086aab03b - 
------------------------------------------- 
$ node 
> var c = require('crypto') 
undefined 
> c.createHash('sha1').update('Hello world!').digest('hex') 
'd3486ae9136e7856bc42212385ea797094475802' 
> c.createHash('sha1').update('Hello world!\n').digest('hex') 
'47a013e660d408619d894b20806b1d5086aab03b' 
相关问题