Closed narasux closed 1 year ago
可以考虑复用Django 本身内置的用户密码框架:https://docs.djangoproject.com/en/4.2/topics/auth/passwords/
sm3对应的应该是MD5和sha1、sha256等弱哈希算法,需要使用对应的慢哈希算法,比如pbkdf2、bcrypt、scrypt等
比如Django默认密码加密是使用 pbkdf2_sha256
hashlib.pbkdf2_hmac 仅支持 hashlib 内置的 hash 算法,若要支持 sm3,需要参考实现 pbkdf2_hmac
ref: hashlib.pbkdf2_hmac
目前使用 bluekrill EncryptField,但是是对称加密,应该调整为 hash 加密,支持 sha256 & sm3
注:需要为蓝鲸 crypto 库贡献 sm3 的实现
bk crypto 不需要支持加盐,使用标准 sm3 即可,加盐相关封装在 bkuser 实现