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 序列化Serialize 和 反序列化Deserialize
Aug 20 Python
Python简单实现自动删除目录下空文件夹的方法
Aug 29 Python
Django中使用celery完成异步任务的示例代码
Jan 23 Python
Python操作MySQL数据库的方法
Jun 20 Python
Python运维开发之psutil库的使用详解
Oct 18 Python
Django组件之cookie与session的使用方法
Jan 10 Python
Python判断变量名是否合法的方法示例
Jan 28 Python
python实现翻转棋游戏(othello)
Jul 29 Python
使用 Python 在京东上抢口罩的思路详解
Feb 27 Python
Python 中Operator模块的使用
Jan 30 Python
conda安装tensorflow和conda常用命令小结
Feb 20 Python
python 中的@运算符使用
May 26 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添加图片水印、压缩、剪切的封装类
2015/08/17 PHP
php str_getcsv把字符串解析为数组的实现方法
2017/04/05 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
js输出列表实现代码
2010/09/12 Javascript
jQuery.lazyload+masonry改良图片瀑布流代码
2014/06/20 Javascript
浅析JS动态创建元素【两种方法】
2016/04/20 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
jQuery操作DOM_动力节点Java学院整理
2017/07/04 jQuery
Angular移动端页面input无法输入的解决方法
2017/11/14 Javascript
详解vue使用插槽分发内容slot的用法
2019/03/28 Javascript
vue+导航锚点联动-滚动监听和点击平滑滚动跳转实例
2019/11/13 Javascript
wxpython 学习笔记 第一天
2009/03/16 Python
用Python编写分析Python程序性能的工具的教程
2015/04/01 Python
python从入门到精通(DAY 3)
2015/12/20 Python
安装ElasticSearch搜索工具并配置Python驱动的方法
2015/12/22 Python
Python装饰器入门学习教程(九步学习)
2016/01/28 Python
Python数据类型详解(二)列表
2016/05/08 Python
浅谈Python NLP入门教程
2017/12/25 Python
详解python的ORM中Pony用法
2018/02/09 Python
Python数据分析库pandas基本操作方法
2018/04/08 Python
Python爬虫框架Scrapy基本用法入门教程
2018/07/26 Python
Python Series从0开始索引的方法
2018/11/06 Python
在python中实现强制关闭线程的示例
2019/01/22 Python
python获取引用对象的个数方式
2019/12/20 Python
Python tkinter常用操作代码实例
2020/01/03 Python
python中文分词库jieba使用方法详解
2020/02/11 Python
Python日期格式和字符串格式相互转换的方法
2020/02/18 Python
编码实现字符串转整型的函数
2012/06/02 面试题
文员岗位职责
2013/11/09 职场文书
语文高效课堂实施方案
2014/05/03 职场文书
医院义诊活动总结
2014/07/04 职场文书
法定代表人资格证明书
2014/09/11 职场文书
技术员个人工作总结
2015/03/03 职场文书
医院消毒隔离制度
2015/08/05 职场文书
HR必备:超全面的薪酬待遇管理方案!
2019/07/12 职场文书
导游词之上海杜莎夫人蜡像馆
2019/11/22 职场文书