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中open函数的使用
Mar 01 Python
Python3控制路由器——使用requests重启极路由.py
May 11 Python
解读! Python在人工智能中的作用
Nov 14 Python
python定向爬取淘宝商品价格
Feb 27 Python
解决Python下json.loads()中文字符出错的问题
Dec 19 Python
Python3 使用cookiejar管理cookie的方法
Dec 28 Python
简单了解python中的与或非运算
Sep 18 Python
基于Python中的yield表达式介绍
Nov 19 Python
Python利用PyExecJS库执行JS函数的案例分析
Dec 18 Python
Python利用for循环打印星号三角形的案例
Apr 12 Python
python3中编码获取网页的实例方法
Nov 16 Python
用Python爬取英雄联盟的皮肤详细示例
Dec 06 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开发大型项目的一点经验
2006/10/09 PHP
php读取excel文件的简单实例
2013/08/26 PHP
PHP读取CURL模拟登录时生成Cookie文件的方法
2014/11/04 PHP
PHP SPL标准库之SplFixedArray使用实例
2015/05/12 PHP
php邮箱地址正则表达式验证
2015/11/13 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
2010/10/01 Javascript
Extjs EditorGridPanel中ComboBox列的显示问题
2011/07/04 Javascript
很好用的js日历算法详细代码
2013/03/07 Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
2013/10/14 Javascript
判断日期是否能跨月查询的js代码
2014/07/25 Javascript
SyntaxHighlighter 3.0.83使用笔记
2015/01/26 Javascript
JavaScript中逗号运算符介绍及使用示例
2015/03/13 Javascript
javascript中eval函数用法分析
2015/04/25 Javascript
预防网页挂马的方法总结
2016/11/03 Javascript
vuex 项目结构目录及一些简单配置介绍
2018/04/08 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
2018/12/13 Javascript
Python列表list排列组合操作示例
2018/12/18 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
2019/01/04 Python
Django多数据库的实现过程详解
2019/08/01 Python
Python更新所有已安装包的操作
2020/02/13 Python
在ipython notebook中使用argparse方式
2020/04/20 Python
澳大利亚当地最大的时装生产商:Cue
2018/08/06 全球购物
iKRIX意大利网上商店:男女豪华服装和配件
2019/10/09 全球购物
Pandora德国官网:购买潘多拉手链、戒指、项链和耳环
2020/02/20 全球购物
上海中网科技笔试题
2012/02/19 面试题
计算机本科生自荐信
2013/10/15 职场文书
租车协议书范本
2014/04/22 职场文书
年终晚会活动方案
2014/08/21 职场文书
平遥古城导游词
2015/02/03 职场文书
2019求职信:应届生求职信范文
2019/04/24 职场文书
《围炉夜话》110句人生箴言,精辟有内涵,引人深思
2019/10/23 职场文书
浅谈MySQL函数
2021/10/05 MySQL
JS 4个超级实用的小技巧 提升开发效率
2021/10/05 Javascript
python数字类型和占位符详情
2022/03/13 Python
MySql统计函数COUNT的具体使用详解
2022/08/14 MySQL