2009-08-25 89 views
7

有没有一种方法可以在Python 2.4中计算SHA256散列? (我强调:Python 2.4)我知道如何在Python 2.5中做到这一点,但不幸的是,它在我的服务器上不可用,并且不会升级。我与this问题中的人有同样的问题,但使用Python 2.4。任何帮助将不胜感激。Python中的SHA256散列2.4

编辑:对不起,我的意思是SHA 256.我太匆忙了。再次抱歉。

回答

10

是的,你可以。在Python 2.4中,有这样的SHA-1模块。请参阅the documentation

但是,请记住,使用较新的Python运行时,从此模块导入的代码将导致DeprecationWarnings。

好的,由于需求被收紧为SHA-256,在标准库中使用SHA-1模块是不够的。我建议检查出pycrypto,它有一个SHA-256的实现。还有Windows二进制版本可以匹配较老的Pythons,请参阅Andrew Kuchlings的链接old PyCrypto page

+0

如果你哈希密码,我不会推荐使用SHA-1,永远。它已被破解,不被视为不安全。使用MD5来散列密码也被认为是不安全的。如果你不能在更新版本的Python中访问新的哈希函数库,我建议对系统调用'ssh-keygen'(在Linux上)并读入它创建的文件。 – MikeyE 2016-09-07 09:13:30

+0

早在2009年,当问及答案写成SHA1就可以了,说“有史以来”有些夸张。作为参考,马克史蒂文斯制造SHA1哈希碰撞的第一个理论方法直到2013年才发布。 但是:是的:知道你的哈希值并理解你的选择的安全含义。 – 2017-09-30 12:29:13

+0

我听到你的声音。当我说“永远”时,我的意思是“永远从这个时刻开始”。但是,我认为这是暗示的。你确实说得很好。我认为你的回答对于写作时是有益的。也许它可以修改成与时俱进? – MikeyE 2017-10-01 02:48:12

8

可以使用sha模块,如果你想保持兼容,你可以这样导入:

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

发布的代码计算SHA-1,并且它对计算SHA-256无用。 – pts 2016-01-05 10:37:09