from hashlib import pbkdf2_hmac
from random import choice
from base64 import b64encode
# 隨機數所使用的字符串
serct_str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
# 拼接長度12位的隨機字符串
salt = "".join(choice(serct_str) for i in range(12))
# 使用hmac加密方式進行加密, 循環次數爲15萬次
hash = pbkdf2_hmac(password="Aa123456.".encode("utf-8"),
salt=salt.encode("utf-8"),
iterations=150000, dklen=None, hash_name="sha256")
# 使用base64的ASCII編碼進行解密
hash = b64encode(hash).decode("ascii").strip()
# 最後一次sha256方式加密
password = "%s$%d$%s$%s" % ("pbkdf2_sha256", 150000, salt, hash)
print(password)
這是通過閱讀框架源碼得知的Django默認密碼加密方式,親測有效;
若有錯誤敬請指出