Django内置加密算法与hashers模块使用指南
本文详解Django内置的密码加密机制,重点解析PASSWORD_HASHERS配置项如何指定存储与验证算法,并介绍django.contrib.auth.hashers模块中make_password和check_password函数的具体用法,帮助用户实现自定义用户表的密码安全存储与验证。
Django密码存储机制概述
Django内置的User类封装了用户密码的存储、校验及修改等核心功能,为开发者提供了便捷的密码管理服务。
Django默认采用pbkdf2_sha256算法来存储和管理用户密码,该机制支持自定义替换。
开发者可通过配置PASSWORD_HASHERS设置项来选择系统启用的具体哈希算法。
PASSWORD_HASHERS配置详解
Django支持多种哈希算法类,配置列表中的首个元素(即settings.PASSWORD_HASHERS[0])决定新密码的存储算法,其余元素则用于验证历史密码,确保不同算法生成的哈希值均可被正确校验。若需更换首选算法,必须调整PASSWORD_HASHERS列表,将目标算法置于首位。
在settings.py中,Password_hashers配置示例如下:
PASSWORD_HASHERS = (
'django.contrib.auth.hashers.PBKDF2PasswordHasher',
'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',
'django.contrib.auth.hashers.BCryptPasswordHasher',
'django.contrib.auth.hashers.SHA1PasswordHasher',
'django.contrib.auth.hashers.MD5PasswordHasher',
'django.contrib.auth.hashers.CryptPasswordHasher',
)
hashers模块核心函数应用
Django内部生成与验证用户密码的具体流程,可通过django.contrib.auth.hashers模块中的相关函数进行了解。掌握这两个核心函数后,即使不使用内置User模型,也能在自定义用户表中无缝集成Django的密码安全机制。
首先需要导入必要的模块:
from django.contrib.auth.hashers import make_password, check_password
从函数命名即可直观判断,该模块主要包含两个关键函数:一个用于创建密码哈希,另一个用于验证密码。
具体调用方法如下:
ps = "123456"
调用make_password(ps, None, 'pbkdf2_sha256')可生成Django格式的密码哈希。其中第二个参数设为None表示不添加随机盐值(每次生成的哈希值均不同),第三个参数指定使用的算法,后续参数可根据需要忽略。
ps_bool = check_password(ps, dj_ps) # check_password 返回值为一个Bool类型,验证密码的正确与否
以上关于Django内置加密算法及加密模块的详解内容分享完毕,希望能为读者提供参考与支持。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









