-1

新手在这里玩哈希并没有得到我想要的结果。尝试从网络上的 txt 文件中获取哈希,然后将该哈希与本地哈希进行比较。

出于测试目的,我使用 SHA256.new(“10”).hexdigest() 即: 4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5

代码:

import urllib2
from Crypto.Hash import SHA256

source = urllib2.urlopen("<xxURLxx>")
line1 = source.readline()  # get first line of the txt file in source which is the hash

localHash = SHA256.new("10").hexdigest()

if localHash == line1: #  I know, shouldnt use == to compare hashes but it is my first try.
   print("it works!")
else:
   print("it does not work...")

打印我从 web 文件中获得的哈希值和它们返回相同字符的本地哈希值。但是,如果我再对每个散列进行一次散列,我会得到不同的结果。

有任何想法吗?

环顾四周,发现: 将 hexdigest() 的结果与字符串进行比较, 但问题是缺少我所拥有的 .digest() 。

预先感谢您的任何帮助。

4

1 回答 1

0

如果我不得不猜测,我会说改变

line1 = source.readline()

line1 = source.readline().strip()

将解决问题。strip()删除前导和尾随空格,包括'\n'几乎肯定会在 . 读取的第一行末尾的换行符 ( ) 字符readline

您可以通过 using 查看是否存在类似的“不可见”字符repr,它使用转义字符显式呈现它们:

>>> print repr('\t')
'\t'
于 2013-09-23T22:42:11.157 回答