我只是測試了python 3.4.3 md5哈希。我不明白我得到的結果。我試圖比較我的SQL數據庫中的散列密碼,但每隔一段時間我嘗試這樣做,我得到不同的結果。這裏是我創造來說明我的問題代碼:我需要幫助理解md5哈希python 3.4.3
import hashlib
x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
p = '5'
for i in x:
k = hashlib.md5(p.encode('utf-8'))
print(k)
結果:
<md5 HASH object @ 0x02A07B10>
<md5 HASH object @ 0x02A07CF0>
<md5 HASH object @ 0x02A07B10>
<md5 HASH object @ 0x02A07CF0>
<md5 HASH object @ 0x02A07B10>
<md5 HASH object @ 0x02A07CF0>
<md5 HASH object @ 0x02A07B10>
<md5 HASH object @ 0x02A07CF0>
<md5 HASH object @ 0x02A07B10>
<md5 HASH object @ 0x02A07CF0>
<md5 HASH object @ 0x02A07B10>
側面說明:不要使用無鹽哈希密碼哈希值。就此而言,如果可能的話,不要將自己的密碼轉換爲散列碼。如果您可以使用Python 3.4+(或早期版本的pyOpenSSL),請使用['hashlib.pbkdf2_hmac'](https://docs.python.org/3/library/hashlib.html#hashlib.pbkdf2_hmac)鹽和一些哈希輪,這些(雖然旨在從密碼中生成私鑰)對於生成密碼哈希也是安全的,這些密碼哈希不能被粗暴強制。 – ShadowRanger
不應該使用MD5來哈希密碼,它的速度太快了(你可以用一個好的GPU對[100 Giga MD5每秒](http://hashcat.net/oclhashcat/#performance)進行蠻力操作)。取而代之的是使用像BCrypt或PBKDF2這樣的成本因子的慢哈希函數。 – martinstoeckli