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文件操作之目录遍历实例分析
May 20 Python
Python中super关键字用法实例分析
May 28 Python
使用相同的Apache实例来运行Django和Media文件
Jul 22 Python
HTML中使用python屏蔽一些基本功能的方法
Jul 07 Python
Python文件操作之合并文本文件内容示例代码
Sep 19 Python
python3 判断列表是一个空列表的方法
May 04 Python
Python绘制KS曲线的实现方法
Aug 13 Python
在Pycharm中对代码进行注释和缩进的方法详解
Jan 20 Python
python基础梳理(一)(推荐)
Apr 06 Python
将Python文件打包成.EXE可执行文件的方法
Aug 11 Python
python实现飞机大战游戏(pygame版)
Oct 26 Python
浅析python 定时拆分备份 nginx 日志的方法
Apr 27 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/07 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
2016/03/22 PHP
php array_multisort 对数组进行排序详解及实例代码
2016/10/27 PHP
PHP让数组中有相同值的组成新的数组实例
2017/12/31 PHP
laravel5使用freetds连接sql server的方法
2018/12/07 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
2020/08/07 PHP
客户端js性能优化小技巧整理
2013/11/05 Javascript
浅析js设置控件的readonly与enabled属性问题
2013/12/25 Javascript
jQuery多媒体插件jQuery Media Plugin使用详解
2014/12/19 Javascript
使用jQuery+EasyUI实现CheckBoxTree的级联选中特效
2015/12/06 Javascript
JS中Eval解析JSON字符串的一个小问题
2016/02/21 Javascript
详解Vue使用命令行搭建单页面应用
2017/05/24 Javascript
angularjs实现上拉加载和下拉刷新数据功能
2017/06/12 Javascript
React-Native中禁用Navigator手势返回的示例代码
2017/09/09 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
2018/08/08 Javascript
nodejs使用async模块同步执行的方法
2019/03/02 NodeJs
vue element upload组件 file-list的动态绑定实现
2019/10/11 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
JS实现transform实现扇子效果
2020/01/17 Javascript
Python实现的几个常用排序算法实例
2014/06/16 Python
python中sys.argv参数用法实例分析
2015/05/20 Python
Python实现的微信公众号群发图片与文本消息功能实例详解
2017/06/30 Python
pycharm远程调试openstack代码
2017/11/21 Python
python3发送邮件需要经过代理服务器的示例代码
2019/07/25 Python
Matplotlib使用字符串代替变量绘制散点图的方法
2020/02/17 Python
keras中的backend.clip用法
2020/05/22 Python
Skyscanner阿联酋:全球领先的旅游搜索平台
2017/11/25 全球购物
美国健康和保健平台:healtop
2020/07/02 全球购物
琳达·法罗眼镜英国官网:Linda Farrow英国
2021/01/19 全球购物
优秀的毕业生的自我评价
2013/12/12 职场文书
租房协议书怎么写
2014/04/10 职场文书
竞聘演讲稿
2014/04/24 职场文书
学生违纪检讨书200字
2014/10/21 职场文书
休学证明范本
2015/06/19 职场文书
2019年入党思想汇报格式与要求
2019/06/25 职场文书
Vue3如何理解ref toRef和toRefs的区别
2022/02/18 Vue.js