我有两个哈希,我需要比较。1来自一个API,另一个是我在内部计算的
我知道两个sha512
可以比较使用
input1.digest() == input2.digest()
这里的两个输入都是sha512
hash.My问题,因为我从API中获得了其中的一个,所以输入是string
格式的,字符串没有digest
:
* AttributeError:'str‘对象没有属性’摘要‘
我以为这会成功的:
if(calculated_hash != input_hash):
return False
return True
如何为其中一个测试用例在内部生成哈希:
hash_val = sha512(parameters.encode('utf-8') + salt.encode('utf-8')).hexdigest()
但由于哈希每次都是新的,这是行不通的。
在给定的情况下,如何比较这两个散列呢?
编辑:
由于输入中有一个动态时间戳,因此从params recived.But,生成的散列接收vc散列有差异,所以在比较hexdigest
!:\时,我仍然得到的值为False!
发布于 2016-02-03 05:29:50
我认为这是可行的:
input1 == input2.digest()
因为,摘要会产生字符串。从api中获取input1,这是字符串。
演示:
>>> import hashlib
>>> hash =hashlib.sha512("hello")
>>> type(hash)
<type '_hashlib.HASH'>
>>> type(hash.digest())
<type 'str'>
>>> print hash.digest()
?q?$?b?x]??j??=s1??
?????%g<?##?ٛ??|z?n???
FcG\.\:??os???C
>>> hash.hexdigest()
'9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043'
可能需要使用十六进制()。
https://stackoverflow.com/questions/35169093
复制相似问题