Django自带的加密算法及加密模块详解
Django内置的User类提供了用户密码的存储、验证、修改等功能,可以很方便你的给用户提供密码服务。
默认的Ddjango使用pbkdf2_sha256方式来存储和管理用的密码,当然是可以自定义的。
Django通过PASSWORD_HASHERS设置选择要使用的算法。
下面有一个列表,列出了Django支持的哈希算法类。列表的第一个元素(即settings.PASSWORD_HASHERS[0])会用于储存密码,所有其它元素都是用于验证的哈希值,它们可以用于检查现有的密码。意思是如果你打算使用不同的算法,你需要修改PASSWORD_HASHERS,来将你最喜欢的算法在列表中放在首位。
一个settings中的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', )
具体在Django中的用户密码生成、验证的过程是怎么样的,可以通过django.contrib.auth.hashers模块中的几个函数大体了解一下。通过对两个函数的了解,完全可以脱离内置的User,实现自定义的用户表中使用django内置的密码机制。
首先导入
fromdjango.contrib.auth.hashersimportmake_password,check_password
通过函数名即可发现,主要有两个函数,分别是创建密码和验证
用法
ps="123456"
dj_ps=make_password(ps,None,'pbkdf2_sha256')#创建django密码,第二个参数为None是每次产生的密码都不用,第三个参数为算法,后面两个参数可以忽略
ps_bool=check_password(ps,dj_ps)#check_password返回值为一个Bool类型,验证密码的正确与否
以上这篇Django自带的加密算法及加密模块详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。