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开发vim插件及心得分享
Nov 04 Python
使用Python脚本对Linux服务器进行监控的教程
Apr 02 Python
全面了解Python环境配置及项目建立
Jun 30 Python
深入理解Django的中间件middleware
Mar 14 Python
Flask框架信号用法实例分析
Jul 24 Python
python爬虫获取新浪新闻教学
Dec 23 Python
python类的实例化问题解决
Aug 31 Python
Python如何实现强制数据类型转换
Nov 22 Python
利用python对excel中一列的时间数据更改格式操作
Jul 14 Python
PyCharm上安装Package的实现(以pandas为例)
Sep 18 Python
详解tensorflow之过拟合问题实战
Nov 01 Python
Python基础之数据结构详解
Apr 28 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/08 国漫
session在php5.3中的变化 session_is_registered() is deprecated in
2013/11/12 PHP
微信公众平台消息接口校验与消息接口响应实例
2014/12/23 PHP
jquery实现点击弹出层效果的简单实例
2014/03/03 Javascript
jquery动态更换设置背景图的方法
2014/03/25 Javascript
js操作IE浏览器弹出浏览文件夹可以返回目录路径
2014/07/14 Javascript
JS实现从网页顶部掉下弹出层效果的方法
2015/08/06 Javascript
jQuery结合CSS制作动态的下拉菜单
2015/10/27 Javascript
使用堆实现Top K算法(JS实现)
2015/12/25 Javascript
AngularJS模块学习之Anchor Scroll
2016/01/19 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
JS排序之冒泡排序详解
2017/04/08 Javascript
使用vue构建移动应用实战代码
2017/08/02 Javascript
C#实现将一个字符转换为整数
2017/12/12 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
2019/06/10 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
基于vue-draggable 实现三级拖动排序效果
2020/01/10 Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
2020/04/28 Javascript
Python开发常用的一些开源Package分享
2015/02/14 Python
python下10个简单实例代码
2017/11/15 Python
Python类的继承和多态代码详解
2017/12/27 Python
Python多线程扫描端口代码示例
2018/02/09 Python
如何在python字符串中输入纯粹的{}
2018/08/22 Python
python基于Selenium的web自动化框架
2019/07/14 Python
python中update的基本使用方法详解
2019/07/17 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
五分钟带你搞懂python 迭代器与生成器
2020/08/30 Python
HTML5 audio标签使用js进行播放控制实例
2015/04/24 HTML / CSS
通信研究生自荐信
2014/02/01 职场文书
期中考试后的反思
2014/02/08 职场文书
资金主管岗位职责范本
2014/03/04 职场文书
高三学生评语大全
2014/04/25 职场文书
教师考核评语
2014/04/28 职场文书
风雨哈佛路观后感
2015/06/03 职场文书
中学图书馆工作总结
2015/08/11 职场文书
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
2022/09/23 Servers