新手玩哈希在这里,并没有得到我期待的结果。尝试从Web上的txt文件获取哈希,然后将该哈希与本地哈希进行比较。蟒蛇 - 问题比较两个哈希
对于我使用SHA256.new(“10”)测试目的hexdigest(),它是:4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5
CODE:
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...")
打印我从网络文件中获取的哈希和本地散列他们返回相同的字符。但是如果我再次散列每个散列,我会得到不同的结果。
任何想法?
看看S.O.并发现: Compare result from hexdigest() to a string 但问题是缺乏.digest(),我有。
非常感谢您的帮助。
我猜'line1'具有在最后一个换行符,但不'line1'的实际值,这是不可能的。 – Blender
什么是“散列每个哈希多一次”?如果你SHA256是一个SHA256,你不应该期望它自己回归......如果你的意思不同......那么你是什么意思?如果向我们展示代码,输入,预期输出和实际输出以显示问题,则无需严格描述问题。 – abarnert
另外,谁告诉你不应该用'=='比较哈希值?它们是十六进制字符串;你会如何比较它们? – abarnert