Sai*_*ran 0 python hash python-2.7 python-3.x
在脚本中,我将哈希作为用户输入,并根据我计算的长度是 md5、sha1 还是 sha256。但是现在的问题是将每个散列转换为相应的其他散列并存储在变量中。
我从 StackOverflow 的答案中尝试了这个 hashlib。
>>> import hashlib
>>> s = 'something to hash'
>>> sb = s.encode("utf8")
>>> hashlib.md5(sb)
<md5 HASH object @ 0x7f36f5ce3440>
>>> hashlib.md5(sb).hexdigest()
'6f4815fdf1f1fd3f36ac295bf39d26b4'
>>> hashlib.sha1(sb).hexdigest()
'72668bc961b0a78bfa1633f6141bcea69ca37468'
Run Code Online (Sandbox Code Playgroud)
但这在给出文本时解决了,但在我的情况下,直接散列是这样给出的。
hash_value = sys.argv[1]
#print len(hash_value)
if len(hash_value) == 64:
type_of_hash = 'sha256'
elif len(hash_value) == 40:
type_of_hash = 'sha1'
elif len(hash_value) == 32:
type_of_hash = 'md5'
else:
print "Invalid Hash"
Run Code Online (Sandbox Code Playgroud)
现在我想做的就是将 hash_value 转换为相应的其他格式,假设给定的输入是 sha256 那么我需要将哈希值转换为其他格式。
有关如何解决此问题的任何建议?
你不能做你想做的事。要生成 3 个散列,您需要使用不同的算法处理相同的输入 3 次。
如果其中任何一个都可以从其他任何一个派生出来,那么就没有理由拥有这样的算法,因为在安全性方面使用其中一个没有任何优势。