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 GAE、Django导出Excel的方法
Nov 24 Python
django 自定义用户user模型的三种方法
Nov 18 Python
深入浅析python继承问题
May 29 Python
tensorflow实现图像的裁剪和填充方法
Jul 27 Python
在python中利用GDAL对tif文件进行读写的方法
Nov 29 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
Aug 20 Python
django 配置阿里云OSS存储media文件的例子
Aug 20 Python
Python json格式化打印实现过程解析
Jul 21 Python
anaconda3安装及jupyter环境配置全教程
Aug 24 Python
详解matplotlib中pyplot和面向对象两种绘图模式之间的关系
Jan 22 Python
Pytorch 图像变换函数集合小结
Feb 01 Python
Python中rapidjson参数校验实现
Jul 25 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远程采集图片详细教程
2014/07/01 PHP
yii的CURD操作实例详解
2014/12/04 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
2015/10/27 PHP
Yii2使用自带的UploadedFile实现的文件上传
2016/06/20 PHP
PHP封装函数实现生成随机的字符串验证码
2017/01/24 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
JS的数组的扩展实例代码
2008/07/09 Javascript
js实现瀑布流的一种简单方法实例分享
2013/11/04 Javascript
jQuery获得IE版本不准确webbrowser的解决方法
2014/02/23 Javascript
jQuery修改CSS伪元素属性的方法
2014/07/30 Javascript
jQuery前端开发35个小技巧
2016/05/24 Javascript
Node.js 日志处理模块log4js
2016/08/28 Javascript
JS调用某段SQL语句的方法
2016/10/20 Javascript
微信小程序 UI布局常用技巧整理总结
2016/12/05 Javascript
vue按需加载组件webpack require.ensure的方法
2017/12/13 Javascript
Vue2.0 http请求以及loading展示实例
2018/03/06 Javascript
学习使用ExpressJS 4.0中的新Router的用法
2018/11/06 Javascript
使用jQuery实现掷骰子游戏
2019/10/24 jQuery
JavaScript实现Excel表格效果
2020/02/07 Javascript
Element Collapse 折叠面板的使用方法
2020/07/26 Javascript
react中hook介绍以及使用教程
2020/12/11 Javascript
Python字符串替换实例分析
2015/05/11 Python
python实现超市扫码仪计费
2018/05/30 Python
Python DataFrame 设置输出不显示index(索引)值的方法
2018/06/07 Python
python去掉 unicode 字符串前面的u方法
2018/10/21 Python
django+mysql的使用示例
2018/11/23 Python
python原类、类的创建过程与方法详解
2019/07/19 Python
pycharm 批量修改变量名称的方法
2019/08/01 Python
美国按摩椅批发网站:Titan Chair
2018/12/27 全球购物
Microsoft Advertising美国:微软搜索广告
2019/05/01 全球购物
办公室文书岗位职责
2013/12/16 职场文书
大学运动会通讯稿
2014/01/28 职场文书
房屋公证委托书
2014/04/03 职场文书
毕业证委托书范文
2014/09/26 职场文书
2016年“12.3”国际残疾人日活动总结
2016/04/01 职场文书
IDEA使用SpringAssistant插件创建SpringCloud项目
2021/06/23 Java/Android