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之让人欢喜让人忧的迭代
Oct 02 Python
Python变量和数据类型详解
Feb 15 Python
轻量级的Web框架Flask 中模块化应用的实现
Sep 11 Python
Python中join函数简单代码示例
Jan 09 Python
python实现自动发送邮件发送多人、群发、多附件的示例
Jan 23 Python
python 自定义异常和异常捕捉的方法
Oct 18 Python
对python:threading.Thread类的使用方法详解
Jan 31 Python
Python中的asyncio代码详解
Jun 10 Python
python绘图模块matplotlib示例详解
Jul 26 Python
在Pytorch中使用样本权重(sample_weight)的正确方法
Aug 17 Python
Python常用模块sys,os,time,random功能与用法实例分析
Jan 07 Python
python 多进程和协程配合使用写入数据
Oct 30 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
限制ckeditor上传图片文件大小的方法
2013/11/15 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
PHP后台备份MySQL数据库的源码实例
2019/03/18 PHP
HTML中不支持静态Expando的元素的问题
2007/03/08 Javascript
用dom+xhtml+css制作的一个相册效果代码打包下载
2008/01/24 Javascript
获取焦点时,利用js定时器设定时间执行动作
2010/04/02 Javascript
Dom在ajax技术中的作用说明
2010/10/25 Javascript
JS将表单导出成EXCEL的实例代码
2013/11/11 Javascript
js 弹出框只弹一次(二次修改之后的)
2013/11/26 Javascript
javascript实现表单提交后,提交按钮不可用的方法
2015/04/18 Javascript
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
webpack多页面开发实践
2017/12/18 Javascript
vue debug 二种方法
2018/09/16 Javascript
基于JS实现前端压缩上传图片的实例代码
2019/05/14 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
2019/11/24 Javascript
Python爬虫DNS解析缓存方法实例分析
2017/06/02 Python
使用Python的toolz库开始函数式编程的方法
2018/11/15 Python
python2爬取百度贴吧指定关键字和图片代码实例
2019/08/14 Python
在Python中使用turtle绘制多个同心圆示例
2019/11/23 Python
python绘制规则网络图形实例
2019/12/09 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
python实现xml转json文件的示例代码
2020/12/30 Python
html table呈现个人简历以及单元格宽度失效的问题解决
2021/01/22 HTML / CSS
美体小铺英国官网:The Body Shop英国
2017/01/24 全球购物
德国在线订购鲜花:Fleurop
2018/08/25 全球购物
求职信格式范本
2013/11/15 职场文书
小学生考试获奖感言
2014/01/30 职场文书
餐厅经理岗位职责范本
2014/02/17 职场文书
校长竞聘演讲稿
2014/05/16 职场文书
增员口号大全
2014/06/18 职场文书
垃圾分类的活动方案
2014/08/15 职场文书
党员评议思想汇报
2014/10/08 职场文书
道歉信范文
2015/05/12 职场文书
初中物理教学反思
2016/02/19 职场文书
送给客户微信问候语!
2019/07/04 职场文书
mysql定时自动备份数据库的方法步骤
2021/07/07 MySQL