Django中密码的加密、验密、解密操作


Posted in Python onDecember 19, 2019

简单介绍一下今天使用到的django内置的加解密包:

from django.contrib.auth.hashers import make_password

如上图所示,django.contrib.auth.hashers即为django内置的加解密包。

小提示:

pycharm中的Python Console(如下图所示)可以执行django的语句,类似python解释器。

Django中密码的加密、验密、解密操作

1.加密

语句:make_password(原始密码[,固定字串][,加密方式])

return 加密后的密码

make_password(原始密码) 或 make_password(原始密码,None) 或 make_password(原始密码,''):每次产生的密码均不同。

>>> from django.contrib.auth.hashers import make_password
>>> make_password('a')
'pbkdf2_sha256$120000$m7gXe6yy0hJd$4ML8hHFQMrGyAXXkJpz9C4MOu8RJ6IvH19fpJaSVz0c='
>>> make_password('a')
'pbkdf2_sha256$120000$uD5csLIeBqWR$HvvTnZsUmATa+KBSCzRbRR5tYNaBab7VWpk2O4NfURU='
>>> make_password('a',None)
'pbkdf2_sha256$120000$SG5CBgULfUew$alE84q7NAzkraQ2Gr1J61pPU6gXLlvCwA2E5H3d75cQ='
>>> make_password('a',None)
'pbkdf2_sha256$120000$Kcq2i6cFokS0$tAaRf6CAFwaqmg9QDHFefTkzCusla2JqU+FKMkjiilk='
>>> make_password('a','')
'pbkdf2_sha256$120000$qBmkLhQTZX8B$pXZ3PZkiPH3fBGjUQt+SsGFpYhIn3BHgACmE5bDdTK0='
>>> make_password('a','')
'pbkdf2_sha256$120000$QR3QAh7MCF15$nAQVTKHEFks92NPmLY2S3odHeT7PoaFoIL7/etKs08w='

make_password(原始密码,固定字串):产生相同密码。
>>> from django.contrib.auth.hashers import make_password
>>> make_password('a','a')
'pbkdf2_sha256$120000$a$l8oCmo99z83LSu7DX4AGnjHHpeVmecW3puc4ufA55mE='
>>> make_password('a','a')
'pbkdf2_sha256$120000$a$l8oCmo99z83LSu7DX4AGnjHHpeVmecW3puc4ufA55mE='
>>> make_password('a','abcd')
'pbkdf2_sha256$120000$abcd$JmTnyyEmsg4YsssiJU4yi0RDAvvJEnqjJOCTounGDc0='
>>> make_password('a','abcd')
'pbkdf2_sha256$120000$abcd$JmTnyyEmsg4YsssiJU4yi0RDAvvJEnqjJOCTounGDc0='

make_password(原始密码,固定字串,加密方式)
>>> from django.contrib.auth.hashers import make_password

>>> make_password('a','ab','pbkdf2_sha256')
'pbkdf2_sha256$120000$ab$KjztZyslBdOqErZyWGtDdB0FhGA/vx4CfL0dFDKbGzI='

使用示例:

from django.contrib.auth.hashers import make_password
class AddView(View):
  def get(self, request):
    return render(request, "user/add.html")
  def post(self, request):
    username = request.POST.get('username')
    password = request.POST.get('password')
        .......
    #密码加密
    password=make_password(password)

2.验证密码

语句:check_password (原始密码, 加密后的密码)

return True/False

当然也可以不需要加密,那么判断密码,则加密后的密码,直接用数据库中的原始密码。

另外一种验证登录密码的方式是authenticate(username=username, password=password),但这种方式的password必须是密文,不能是原始密码(明文)

3.无法解密

总结

以上所述是小编给大家介绍的Django中密码的加密、验密、解密操作,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python之Web框架Django项目搭建全过程
May 02 Python
详解django三种文件下载方式
Apr 06 Python
一文了解Python并发编程的工程实现方法
May 31 Python
Python API 自动化实战详解(纯代码)
Jun 11 Python
在SQLite-Python中实现返回、查询中文字段的方法
Jul 17 Python
Python OpenCV实现鼠标画框效果
Aug 19 Python
Python学习笔记之列表推导式实例分析
Aug 13 Python
numpy.ndarray 实现对特定行或列取值
Dec 05 Python
Python标准库json模块和pickle模块使用详解
Mar 10 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
Jul 20 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
Sep 28 Python
Python利用Turtle绘制哆啦A梦和小猪佩奇
Apr 04 Python
利用OpenCV和Python实现查找图片差异
Dec 19 #Python
Python文本处理简单易懂方法解析
Dec 19 #Python
python类中super() 的使用解析
Dec 19 #Python
在python中计算ssim的方法(与Matlab结果一致)
Dec 19 #Python
用openCV和Python 实现图片对比,并标识出不同点的方式
Dec 19 #Python
Python命令行click参数用法解析
Dec 19 #Python
python3 常见解密加密算法实例分析【base64、MD5等】
Dec 19 #Python
You might like
php网页后退不再出现过期
2007/03/08 PHP
CodeIgniter中使用cookie的三种方式详解
2014/07/18 PHP
解放web程序员的输入验证
2006/10/06 Javascript
js 对象是否存在判断
2009/07/15 Javascript
JS解析XML的实现代码
2009/11/12 Javascript
javascript 兼容所有浏览器的DOM扩展功能
2012/08/01 Javascript
多种方法实现JS动态添加事件
2013/11/01 Javascript
flash遮住div问题的正确解决方法
2014/02/27 Javascript
jquery分页对象使用示例
2014/04/01 Javascript
js控制当再次点击按钮时的间隔时间
2014/06/03 Javascript
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
JavaScript 七大技巧(一)
2015/12/13 Javascript
详解原生JavaScript实现jQuery中AJAX处理的方法
2016/05/10 Javascript
AngularJS实现星星等级评分功能
2016/09/24 Javascript
Websocket协议详解及简单实例代码
2016/12/12 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
2017/02/23 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
使用JS实现鼠标放上图片进行放大离开实现缩小功能
2021/01/27 Javascript
[05:28]刀塔密之一:团结则存
2014/07/03 DOTA
使用Python的Supervisor进行进程监控以及自动启动
2014/05/29 Python
基于Python实现一个简单的银行转账操作
2016/03/06 Python
使用python和pygame制作挡板弹球游戏
2019/12/03 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
2019/12/12 Python
selenium+python实现自动登陆QQ邮箱并发送邮件功能
2019/12/13 Python
世界上最好的帽子:Tilley
2016/11/27 全球购物
澳大利亚珍珠首饰购物网站:Vayo Pearls
2019/03/11 全球购物
父母对孩子说的话
2014/04/12 职场文书
文明寝室标语
2014/06/13 职场文书
分公司总经理岗位职责
2014/08/03 职场文书
计划生育工作总结2015
2015/04/03 职场文书
2015年学校图书室工作总结
2015/05/19 职场文书
通讯稿格式及范文
2015/07/22 职场文书
2019年最新证婚词精选集!
2019/06/28 职场文书
MongoDB balancer的使用详解
2021/04/30 MongoDB
浅谈MySQL函数
2021/10/05 MySQL
Python读取和写入Excel数据
2022/04/20 Python