Python 2.4中的SHA256哈希

7

有没有办法在Python 2.4中计算SHA256哈希值?(我强调:Python 2.4)我知道如何在Python 2.5中进行操作,但不幸的是它在我的服务器上不可用,也不会进行升级。我遇到了与这个问题中的人一样的问题,只不过是在Python 2.4中。

3个回答

10

是的,你可以。Python 2.4版本中有一个名为SHA-1模块的模块可以准确地实现这个功能,请参见文档

然而,请注意,当使用更新的Python版本运行导入此模块的代码时,会产生DeprecationWarnings(弃用警告)。

好的,既然要求更紧,需要使用SHA-256,那么标准库中的SHA-1模块就不够了。我建议尝试一下pycrypto,它有一个SHA-256实现。还有与较老版本的Python匹配的Windows二进制版本发布,请从Andrew Kuchling的旧版PyCrypto页面的链接进行下载。


如果你正在进行密码哈希,我不建议使用SHA-1。它已经被破解并且不再被认为是安全的。使用MD5来哈希密码也被认为是不安全的。如果你无法访问Python更高版本中的新哈希库,我建议在Linux上调用'ssh-keygen'并读取它创建的文件。 - MikeyE
说“永远”可能有点夸张了,回到2009年提出这个问题时,SHA1还是可以的。值得一提的是,Marc Stevens首次提出让SHA1哈希碰撞的理论方法是在2013年发表的。但是,确实需要了解你所使用的哈希算法,并理解你的选择对安全性的影响。 - af.
我明白你的意思。当我说“ever”时,我的意思是“从现在开始的未来”。但是,我认为这是可以理解的。你说得很有道理。我认为你的回答对于当时来说是不错的。也许可以修改一下以适应现在的情况? - MikeyE

8

如果您想保持兼容性,可以使用sha模块,并像这样导入它:

try:
    from hashlib import sha1
except ImportError:
    from sha import sha as sha1

所发布的代码计算SHA-1,计算SHA-256是无用的。 - pts

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接