【问题标题】:Difference in SHA512 between python hashlib and sha512sum toolpython hashlib和sha512sum工具之间SHA512的区别
【发布时间】:2009-07-18 15:56:13
【问题描述】:

我从 linux 'sha512sum' 工具和 python hashlib 库中获得了不同的消息摘要。

这是我在 Ubuntu 8.10 上得到的:

$ echo test | sha512sum
0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123  -

$ python
Python 2.5.2 (r252:60911, Oct  5 2008, 19:24:49) 
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import hashlib
>>> hashlib.sha512("test").hexdigest()
'ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff'

两者都应该计算字符串“test”的消息摘要,为什么你认为我得到不同的结果?

【问题讨论】:

    标签: python digest sha512 hashlib


    【解决方案1】:

    我认为不同之处在于 echo 在其输出中添加了换行符。 试试 echo -n test | sha512sum

    【讨论】:

      【解决方案2】:

      echo 正在添加换行符:

      $ python -c 'import hashlib; print hashlib.sha512("test\n").hexdigest()'
      0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123
      

      为避免这种情况,请使用echo -n

      【讨论】:

        【解决方案3】:

        不同的输入,不同的输出。尝试将like与like进行比较:

        C:\junk>echo test| python -c "import sys, hashlib; x = sys.stdin.read(); print len(x), repr(x); print hashlib.sha512(x).hexdigest()"
        5 'test\n'
        0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-12-17
          • 2019-03-08
          • 1970-01-01
          • 1970-01-01
          • 2016-11-29
          • 2021-06-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多