我必须要有一些简单的东西。我不确定,为什么SHA总和不匹配。在Linux命令行上使用nodejs
和shasum
生成总和。
user@host:~$ nodejs
> var c = require('crypto')
undefined
> c.createHash('sha1').update('Hello world!','ascii').digest('hex')
'd3486ae9136e7856bc42212385ea797094475802'
user@host:~$ shasum -
Hello world!
47a013e660d408619d894b20806b1d5086aab03b -
我确实尝试了ascii
和utf-8
以及nodejs
和shasum
等不同选项。但是,存在不匹配。当然,对于简单的英文文本,ascii
和utf-8
无关紧要。
虽然,因为生成和使用哈希的应用程序将是nodejs
个应用程序;所以,它可能没关系。但是,我无法解决总和不同的事实。
你能指导我吗?
答案 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'