nodejs - shasum不匹配

时间:2014-10-02 19:01:40

标签: node.js sha

我必须要有一些简单的东西。我不确定,为什么SHA总和不匹配。在Linux命令行上使用nodejsshasum生成总和。

user@host:~$ nodejs
> var c = require('crypto')
undefined
> c.createHash('sha1').update('Hello world!','ascii').digest('hex')
'd3486ae9136e7856bc42212385ea797094475802'

user@host:~$ shasum -
Hello world!
47a013e660d408619d894b20806b1d5086aab03b  -

我确实尝试了asciiutf-8以及nodejsshasum等不同选项。但是,存在不匹配。当然,对于简单的英文文本,asciiutf-8无关紧要。

虽然,因为生成和使用哈希的应用程序将是nodejs个应用程序;所以,它可能没关系。但是,我无法解决总和不同的事实。

你能指导我吗?

1 个答案:

答案 0 :(得分: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'