【发布时间】:2017-08-04 01:09:12
【问题描述】:
在脚本中,我将哈希作为用户输入,并根据长度计算它是 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'
但这解决了当给出文本时,但在我的情况下,直接哈希是这样给出的。
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"
现在我要做的就是将 hash_value 转换为对应的其他值,假设给定的输入是 sha256,那么我需要将哈希值转换为其他格式。
关于如何解决这个问题的任何建议?
【问题讨论】:
-
你不能——它们不是不同的“格式”,它们是完全不同的哈希函数。一般来说,您需要原始文本来计算其中的任何一个。
-
这当然不可能,但只是出于好奇,你为什么需要这个?
-
在对该主题有一些经验之后,阅读我自己的问题对我来说似乎很愚蠢。
标签: python python-2.7 python-3.x hash