2009-08-25 49 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