0
當我使用shell命令:呼應-n 「密碼」 | OpenSSL的DGST -md5 -binary | OpenSSL的ENC -base64
echo -n "password"|openssl dgst -md5 -binary|openssl enc -base64
結果是:X03MO1qnZdYdgyfeuILPmQ ==
但是,我怎麼能做python3
import base64, sys, hashlib
text = "password"
try:
text = bytes(text, 'utf-8')
except:
pass
auth = str.encode(hashlib.md5(text).hexdigest())
query = base64.b64encode(auth)
print(query)
的結果是不同的:NWY0ZGNjM2I1YWE3NjVkNjFkODMyN2RlYjg4MmNmOTk =
當保存密碼驗證程序只是使用哈希函數是不夠的,僅僅加入鹽並稍微提高了安全性。相反,用隨機鹽迭代HMAC約100ms持續時間,然後用散列表保存鹽。更好的是使用諸如'PBKDF2','Rfc2898DeriveBytes','password_hash','Bcrypt','passlib.hash'或類似函數的函數。關鍵是要讓攻擊者花費大量時間通過暴力破解密碼。 – zaph