【问题标题】:Convert a md5 value to corresponding SHA1 and SHA256 in python?在 python 中将 md5 值转换为相应的 SHA1 和 SHA256?
【发布时间】: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


【解决方案1】:

你不能做你想做的事。 要生成 3 个哈希,您需要使用不同的算法处理相同的输入 3 次。

如果其中任何一个可以从其他任何一个推导出来,那么就没有理由拥有这样的算法,因为在安全性方面使用其中一个或另一个没有优势。

【讨论】:

    【解决方案2】:

    下面是我编写的使用 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))
    

    【讨论】:

      猜你喜欢
      • 2019-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-03
      • 1970-01-01
      相关资源
      最近更新 更多