我一定缺少一些简单的东西。我不确定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应用程序;因此,这可能无关紧要。但是,我无法绕开总和会有所不同的事实。

你能指导我吗?

最佳答案

您的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/

10-13 08:44