【问题标题】:nodejs - shasum mismatchnodejs - shasum不匹配
【发布时间】:2014-11-27 20:23:51
【问题描述】:

我一定缺少一些简单的东西。我不确定,为什么 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-8nodejsshasum;但是,存在不匹配。当然,对于简单的英文文本,asciiutf-8 应该无关紧要。

虽然,由于生成和使用哈希的应用程序将是nodejs 应用程序;因此,这可能无关紧要。但是,我无法回避总和会不同的事实。

你能指导我吗?

【问题讨论】:

    标签: node.js sha


    【解决方案1】:

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

    【讨论】:

    • echo -n "Hello world!"|sha1sum
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-21
    • 1970-01-01
    相关资源
    最近更新 更多