Django自带的加密算法及加密模块详解


Posted in Python onDecember 03, 2019

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内置的密码机制。

首先导入

from django.contrib.auth.hashers import make_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自带的加密算法及加密模块详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python自动化测试之从命令行运行测试用例with verbosity
Sep 28 Python
python实现的jpg格式图片修复代码
Apr 21 Python
python 利用栈和队列模拟递归的过程
May 29 Python
基于python代码实现简易滤除数字的方法
Jul 17 Python
python从子线程中获得返回值的方法
Jan 30 Python
Django Sitemap 站点地图的实现方法
Apr 29 Python
python操作excel让工作自动化
Aug 09 Python
Python使用matplotlib绘制Logistic曲线操作示例
Nov 28 Python
Python操作Elasticsearch处理timeout超时
Jul 17 Python
Python urlopen()参数代码示例解析
Dec 10 Python
Python手拉手教你爬取贝壳房源数据的实战教程
May 21 Python
PyTorch中permute的使用方法
Apr 26 Python
python Opencv计算图像相似度过程解析
Dec 03 #Python
django 中使用DateTime常用的时间查询方式
Dec 03 #Python
在django中自定义字段Field详解
Dec 03 #Python
python 实现单通道转3通道
Dec 03 #Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
Dec 03 #Python
python3实现elasticsearch批量更新数据
Dec 03 #Python
python实现从wind导入数据
Dec 03 #Python
You might like
叶罗丽:为什么大家对颜冰这对CP非常关心,却对金茉两人十分冷漠
2020/03/17 国漫
PHP用SAX解析XML的实现代码与问题分析
2011/08/22 PHP
PHP实现根据设备类型自动跳转相应页面的方法
2014/07/24 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
jquery中ajax调用json数据的使用说明
2011/03/17 Javascript
分享27款非常棒的jQuery 表单插件
2011/03/28 Javascript
gridpanel动态加载数据的实例代码
2013/07/18 Javascript
javascript中解析四则运算表达式的算法和示例
2014/08/11 Javascript
jQuery循环动画与获取组件尺寸的方法
2015/02/02 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
AngularJS bootstrap启动详解及实例代码
2016/09/14 Javascript
JS实现的图片预览插件与用法示例【不上传图片】
2016/11/25 Javascript
浅谈在koa2中实现页面渲染的全局数据
2017/10/09 Javascript
Angular4集成ng2-file-upload的上传组件
2018/03/14 Javascript
angularJS开发注意事项
2018/05/26 Javascript
JavaScript实现新年倒计时效果
2018/11/17 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
[01:34]传奇从这开始 2016国际邀请赛中国区预选赛震撼开启
2016/06/26 DOTA
为Python程序添加图形化界面的教程
2015/04/29 Python
Python判断直线和矩形是否相交的方法
2015/07/14 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
2018/10/30 Python
使用pytorch实现可视化中间层的结果
2019/12/30 Python
Python 2种方法求某个范围内的所有素数(质数)
2020/01/31 Python
Python中的xlrd模块使用原理解析
2020/05/21 Python
基于python和flask实现http接口过程解析
2020/06/15 Python
如何用python批量调整视频声音
2020/12/22 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
Orvis官网:自1856年以来,优质服装、飞钓装备等
2018/12/17 全球购物
"火柴棍式"程序员面试题
2014/03/16 面试题
医学检验专业个人求职信范文
2013/12/04 职场文书
党的群众路线教育实践活动个人批评与自我批评
2014/10/16 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
应届生们该怎么书写求职信?
2019/07/05 职场文书
Win11运行育碧游戏总是崩溃怎么办 win11玩育碧游戏出现性能崩溃的解决办法
2022/04/06 数码科技