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默认密码加密方式,亲测有效;
若有错误敬请指出