Django默认用户登录make_password函数原生代码实现

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默认密码加密方式,亲测有效;

若有错误敬请指出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值