我一定缺少一些简单的东西。我不确定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
应用程序;因此,这可能无关紧要。但是,我无法绕开总和会有所不同的事实。你能指导我吗?
最佳答案
您的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'
关于node.js - nodejs-shasum不匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26167730/