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中模拟enum枚举类型的5种方法分享
Nov 22 Python
老生常谈Python基础之字符编码
Jun 14 Python
TensorFlow模型保存/载入的两种方法
Mar 08 Python
python 删除非空文件夹的实例
Apr 26 Python
python实现类之间的方法互相调用
Apr 29 Python
pandas数据集的端到端处理
Feb 18 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
Jun 19 Python
Python PyPDF2模块安装使用解析
Jan 19 Python
浅谈Tensorflow 动态双向RNN的输出问题
Jan 20 Python
python Socket网络编程实现C/S模式和P2P
Jun 22 Python
使用python向MongoDB插入时间字段的操作
May 18 Python
python实现MD5进行文件去重的示例代码
Jul 09 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排序算法(冒泡排序,快速排序)
2012/10/09 PHP
php错误日志简单配置方法
2016/07/11 PHP
php通过header发送自定义数据方法
2018/01/18 PHP
PHP PDOStatement::fetchColumn讲解
2019/01/31 PHP
php反射学习之不用new方法实例化类操作示例
2019/06/14 PHP
使用laravel根据用户类型来显示或隐藏字段
2019/10/17 PHP
基于jquery的文本框与autocomplete结合使用(asp.net+json)
2012/05/30 Javascript
js实现两个值相加alert出来精确到指定位
2013/09/25 Javascript
Jquery 复选框取值兼容FF和IE8(测试有效)
2013/10/29 Javascript
Knockout数组(observable)使用详解示例
2013/11/15 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
深入浅析JavaScript中with语句的理解
2016/05/12 Javascript
动态设置form表单的action属性的值的简单方法
2016/05/25 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
2017/10/26 Javascript
微信小程序中添加客服按钮contact-button功能
2018/04/27 Javascript
微信开发之企业付款到银行卡接口开发的示例代码
2018/09/18 Javascript
angular4强制刷新视图的方法
2018/10/09 Javascript
Node.js Event Loop各阶段讲解
2019/03/08 Javascript
详解使用React.memo()来优化函数组件的性能
2019/03/19 Javascript
Vue运用transition实现过渡动画
2019/05/06 Javascript
jQuery实现简易QQ聊天框
2020/02/10 jQuery
python os用法总结
2018/06/08 Python
python库lxml在linux和WIN系统下的安装
2018/06/24 Python
numpy实现RNN原理实现
2021/03/02 Python
STUBHUB日本:购买和出售全球活动门票
2018/07/01 全球购物
幼儿园毕业典礼主持词
2014/03/21 职场文书
技术经济专业求职信
2014/09/03 职场文书
员工试用期转正自我评价
2015/03/10 职场文书
2015年学校食堂工作总结
2015/04/22 职场文书
中学社团活动总结
2015/05/07 职场文书
装修安全责任协议书
2016/03/22 职场文书
范文之农村基层党建工作报告
2019/10/24 职场文书
七个非常实用的Python工具包总结
2021/06/15 Python
一级电子管军用接收机测评
2022/04/05 无线电