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运行效率
Jun 09 Python
利用Django-environ如何区分不同环境
Aug 26 Python
Python实现的大数据分析操作系统日志功能示例
Feb 11 Python
Python+threading模块对单个接口进行并发测试
Jun 25 Python
PyTorch的深度学习入门之PyTorch安装和配置
Jun 27 Python
Python爬取视频(其实是一篇福利)过程解析
Aug 01 Python
使用OpenCV实现仿射变换—平移功能
Aug 29 Python
python百行代码自制电脑端网速悬浮窗的实现
May 12 Python
Pytest单元测试框架如何实现参数化
Sep 05 Python
python爬虫构建代理ip池抓取数据库的示例代码
Sep 22 Python
Python+Appium实现自动抢微信红包
May 21 Python
Python FuzzyWuzzy实现模糊匹配
Apr 28 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
php创建基本身份认证站点的方法详解
2013/06/08 PHP
php实现分页显示
2015/11/03 PHP
替换php字符串中的单引号为双引号的方法
2017/02/16 PHP
PHP获取文本框、密码域、按钮的值实例代码
2017/04/19 PHP
laravel 5异常错误:FatalErrorException in Handler.php line 38的解决
2017/10/12 PHP
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
2007/03/12 Javascript
js 代码优化点滴记录
2012/02/19 Javascript
Javascript动态引用CSS文件的2种方法介绍
2014/06/06 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
2018/03/01 Javascript
react项目如何使用iconfont的方法步骤
2019/03/13 Javascript
微信小程序从注册账号到上架(图文详解)
2019/07/17 Javascript
javascript Canvas动态粒子连线
2020/01/01 Javascript
JavaScript实现字符串与HTML格式相互转换
2020/03/17 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
vue实现前端列表多条件筛选
2020/10/26 Javascript
[40:13]Ti4 冒泡赛第二天 iG vs NEWBEE 2
2014/07/15 DOTA
python3使用urllib示例取googletranslate(谷歌翻译)
2014/01/23 Python
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
python中多层嵌套列表的拆分方法
2018/07/02 Python
Python实现的建造者模式示例
2018/08/06 Python
python 保存float类型的小数的位数方法
2018/10/17 Python
多个python文件调用logging模块报错误
2020/02/12 Python
Python中内建模块collections如何使用
2020/05/27 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
Linux如何为某个操作添加别名
2013/03/01 面试题
职高毕业生自我鉴定
2013/10/21 职场文书
公司离职证明范本
2014/01/13 职场文书
医学生个人求职信范文
2014/02/07 职场文书
新年主持词
2014/03/27 职场文书
大学生活自我评价
2014/04/09 职场文书
让生命充满爱演讲稿
2014/05/10 职场文书
学生旷课检讨书500字
2014/10/28 职场文书
幼师求职自荐信
2015/03/26 职场文书
毕业论文致谢怎么写
2015/05/14 职场文书
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python
SqlServer数据库远程连接案例教程
2021/07/15 SQL Server