2014-10-02 46 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' 
相關問題