[英]Convert a md5 value to corresponding SHA1 and SHA256 in python?
在腳本中,我將哈希作為用戶輸入,並根據我計算的長度是 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 那么我需要將哈希值轉換為其他格式。
有關如何解決此問題的任何建議?
你不能做你想做的事。 要生成 3 個散列,您需要使用不同的算法處理相同的輸入 3 次。
如果其中任何一個可以從其他任何一個派生出來,那么就沒有理由擁有這樣的算法,因為在安全性方面使用其中一個沒有任何優勢。
下面是我編寫的使用virustotal API從MD5獲取SHA-256和SHA-1的程序。 希望能幫助到你:
pip3 install vt-py
import vt,pandas
client = vt.Client("Virus Total API Key")
data=pandas.read_csv("path of MD5 File ")
Column1=list(data['Name of Column of MD5 File containing hashes'])
with open("path of new SHA-256 file you want to create ", "a") as myfile:
with open("path of new SHA-1 file you want to create", "a") as myfile2:
for i in Column1:
file = client.get_object("/files/{}".format(i))
myfile.write("{}\n".format(file.sha256))
myfile2.write("{}\n".format(file.sha1))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.