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 爬虫URL中存在中文或特殊符号无法请求的问题
May 11 Python
Python中偏函数用法示例
Jun 07 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
Nov 21 Python
Python 限制线程的最大数量的方法(Semaphore)
Feb 22 Python
python 中xpath爬虫实例详解
Aug 26 Python
Win系统PyQt5安装和使用教程
Dec 25 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
Feb 17 Python
python的reverse函数翻转结果为None的问题
May 11 Python
python连接mysql有哪些方法
Jun 24 Python
Python 实现RSA加解密文本文件
Dec 30 Python
Pytest中skip skipif跳过用例详解
Jun 30 Python
asyncio异步编程之Task对象详解
Mar 13 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
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
php中strstr、strrchr、substr、stristr四个函数的区别总结
2014/09/22 PHP
PHP实现服务器状态监控的方法
2014/12/09 PHP
php实现简单爬虫的开发
2016/03/28 PHP
PHP数据库表操作的封装类及用法实例详解
2016/07/12 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
2017/06/10 PHP
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
JS获取客户端IP地址、MAC和主机名的7个方法汇总
2014/07/21 Javascript
ExpressJS入门实例
2015/01/14 Javascript
jQuery手机浏览器中拖拽动作的艰难性分析
2015/02/04 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
深入浅出ES6之let和const命令
2016/08/25 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
2017/05/12 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
2017/06/28 Javascript
简单谈谈关于Angular Cli打包的事
2017/09/05 Javascript
在Vue中用canvas实现二维码和图片合成海报的方法
2019/06/10 Javascript
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
2020/04/25 Javascript
[01:45:05]VGJ.T vs Newbee Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
Python中基础的socket编程实战攻略
2016/06/01 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
2017/02/14 Python
Python django框架应用中实现获取访问者ip地址示例
2019/05/17 Python
python tools实现视频的每一帧提取并保存
2020/03/20 Python
Python实现时间序列可视化的方法
2019/08/06 Python
python config文件的读写操作示例
2019/09/27 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
Python 中@property的用法详解
2020/01/15 Python
css3实现3d旋转动画特效
2015/03/10 HTML / CSS
HTML5图片预览实例分享
2014/06/04 HTML / CSS
《梅兰芳学艺》教学反思
2014/02/24 职场文书
机械制造专业毕业生求职信
2014/03/02 职场文书
大型演出策划方案
2014/05/28 职场文书
公司授权委托书格式样本
2014/10/01 职场文书
大学升旗仪式主持词
2015/07/04 职场文书
党员公开承诺书(2016最新版)
2016/03/24 职场文书
pytorch 6 batch_train 批训练操作
2021/05/28 Python