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中scatter函数参数及用法详解
Nov 08 Python
python发送多人邮件没有展示收件人问题的解决方法
Jun 21 Python
如何为Python终端提供持久性历史记录
Sep 03 Python
关于TensorFlow新旧版本函数接口变化详解
Feb 10 Python
Django如何使用redis作为缓存
May 21 Python
使用Python爬取Json数据的示例代码
Dec 07 Python
Python3使用Selenium获取session和token方法详解
Feb 16 Python
python实现学生信息管理系统源码
Feb 22 Python
python实现简单文件读写函数
Feb 25 Python
pytorch训练神经网络爆内存的解决方案
May 22 Python
Pyhton爬虫知识之正则表达式详解
Apr 01 Python
Python+pyaudio实现音频控制示例详解
Jul 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
sony ICF-2010 拆解与改装
2021/03/02 无线电
PHP MYSQL乱码问题,使用SET NAMES utf8校正
2009/11/30 PHP
PHP 文件编程综合案例-文件上传的实现
2013/07/03 PHP
什么是PHP7中的孤儿进程与僵尸进程
2019/04/14 PHP
写了一个layout,拖动条连贯,内容区可为iframe
2007/08/19 Javascript
javascript脚本调试方法小结
2008/11/24 Javascript
验证javascript中Object和Function的关系的三段简单代码
2010/06/27 Javascript
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
基于jquery的无刷新分页技术
2011/06/11 Javascript
关于在IE下的一个安全BUG --可用于跟踪用户的系统鼠标位置
2013/04/17 Javascript
防止浏览器记住用户名及密码的简单实用方法
2013/04/22 Javascript
一个简单的jquery的多选下拉框(自写)
2014/05/05 Javascript
用jquery实现的一个超级简单的下拉菜单
2014/05/18 Javascript
JS小游戏之仙剑翻牌源码详解
2014/09/25 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
2015/03/04 Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
2016/07/27 Javascript
Vue实现双向数据绑定
2017/05/03 Javascript
详解基于Vue cli生成的Vue项目的webpack4升级
2018/06/19 Javascript
javascript随机变色实例代码
2019/10/15 Javascript
js实现树形数据转成扁平数据的方法示例
2020/02/27 Javascript
vue elementui tree 任意级别拖拽功能代码
2020/08/31 Javascript
[06:14]《辉夜杯》外卡赛附加赛 4支战队巡礼
2015/10/23 DOTA
Python实现的桶排序算法示例
2017/11/29 Python
Python3.6简单反射操作示例
2018/06/14 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
对numpy中二进制格式的数据存储与读取方法详解
2018/11/01 Python
python自动循环定时开关机(非重启)测试
2019/08/26 Python
python基于K-means聚类算法的图像分割
2019/10/30 Python
利用python清除移动硬盘中的临时文件
2020/10/28 Python
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
大学生社会实践自我鉴定
2014/03/24 职场文书
大学生翘课检讨书范文
2014/10/06 职场文书
写给领导的感谢信
2015/01/22 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书
电影焦裕禄观后感
2015/06/09 职场文书
JavaScript 原型与原型链详情
2021/11/02 Javascript