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语言编写电脑时间自动同步小工具
Mar 08 Python
使用Python的Tornado框架实现一个简单的WebQQ机器人
Apr 24 Python
python实现根据主机名字获得所有ip地址的方法
Jun 28 Python
python文件与目录操作实例详解
Feb 22 Python
python 编程之twisted详解及简单实例
Jan 28 Python
Python 25行代码实现的RSA算法详解
Apr 10 Python
Python设计模式之装饰模式实例详解
Jan 21 Python
python对象与json相互转换的方法
May 07 Python
对python中UDP,socket的使用详解
Aug 22 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
Apr 19 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
Aug 07 Python
Pycharm自动添加文件头注释和函数注释参数的方法
Oct 23 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
论建造顺序的重要性
2020/03/04 星际争霸
兼容性最强的PHP生成缩略图的函数代码(修改版)
2011/01/18 PHP
PHP判断数据库中的记录是否存在的方法
2014/11/14 PHP
Yii2语言国际化自动配置详解
2018/08/22 PHP
jQuery 各种浏览器下获得日期区别
2008/12/22 Javascript
锋利的jQuery 要点归纳(一) jQuery选择器
2010/03/21 Javascript
基于jquery的checkbox下拉框插件代码
2010/06/25 Javascript
js中的string.format函数代码
2020/08/11 Javascript
js实现页面转发功能示例代码
2013/08/05 Javascript
javascript实现数字验证码的简单实例
2014/02/10 Javascript
JS实现简单路由器功能的方法
2015/05/27 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
2015/09/06 Javascript
利用AJAX实现WordPress中的文章列表及评论的分页功能
2016/05/17 Javascript
js实现多图左右切换功能
2016/08/04 Javascript
AngularJS指令中的绑定策略实例分析
2016/12/14 Javascript
bootstrap table使用入门基本用法
2017/05/24 Javascript
浅谈vue-lazyload实现的详细过程
2017/08/22 Javascript
JavaScript自执行函数和jQuery扩展方法详解
2017/10/27 jQuery
vue.js实现插入数值与表达式的方法分析
2018/07/06 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
微信小程序用canvas画图并分享
2020/03/09 Javascript
JavaScript实现京东快递单号查询
2020/11/30 Javascript
Python 快速实现CLI 应用程序的脚手架
2017/12/05 Python
使用python批量修改文件名的方法(视频合并时)
2020/03/24 Python
基于python生成英文版词云图代码实例
2020/05/16 Python
使用HTML5和CSS3表单验证功能
2017/05/05 HTML / CSS
.net面试题
2016/09/17 面试题
毕业生求职简历的自我评价
2013/10/07 职场文书
标准毕业生自荐信范文
2013/11/04 职场文书
政协会议宣传标语
2014/10/09 职场文书
六查六看个人剖析材料
2014/10/14 职场文书
小学生组织委员竞选稿
2015/11/21 职场文书
《玩出了名堂》教学反思
2016/02/17 职场文书
利用ajax+php实现商品价格计算
2021/03/31 PHP
Python Django 后台管理之后台模型属性详解
2021/04/25 Python
用 Python 元类的特性实现 ORM 框架
2021/05/19 Python