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操作MySQL数据库的方法分享
May 29 Python
举例详解Python中threading模块的几个常用方法
Jun 18 Python
基于python内置函数与匿名函数详解
Jan 09 Python
Python用 KNN 进行验证码识别的实现方法
Feb 06 Python
配置 Pycharm 默认 Test runner 的图文教程
Nov 30 Python
解决sublime+python3无法输出中文的问题
Dec 12 Python
如何利用Python分析出微信朋友男女统计图
Jan 25 Python
Python异常处理例题整理
Jul 07 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
Jul 19 Python
python中常见错误及解决方法
Jun 21 Python
Pythonic版二分查找实现过程原理解析
Aug 11 Python
Python 删除List元素的三种方法remove、pop、del
Nov 16 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 高效率写法 推荐
2010/02/21 PHP
php中去除所有js,html,css代码
2010/10/12 PHP
php class类的用法详细总结
2013/10/17 PHP
PHP中preg_match函数正则匹配的字符串长度问题
2015/05/27 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
2016/11/05 PHP
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
2007/03/12 Javascript
JQUERY1.6 使用方法四 检测浏览器
2011/11/23 Javascript
JQuery中如何传递参数如click(),change()等具体实现
2013/04/28 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
jQuery中document与window以及load与ready 区别详解
2014/12/29 Javascript
js实现简单的计算器功能
2017/01/16 Javascript
jQuery异步提交表单实例
2017/05/30 jQuery
谈一谈vue请求数据放在created好还是mounted里好
2020/07/27 Javascript
[01:15:00]LGD vs Mineski Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
Windows下PyMongo下载及安装教程
2015/04/27 Python
wxPython中listbox用法实例详解
2015/06/01 Python
Python编写一个闹钟功能
2017/07/11 Python
python中利用zfill方法自动给数字前面补0
2018/04/10 Python
python处理“
2019/06/10 Python
Django CBV与FBV原理及实例详解
2019/08/12 Python
Python实现计算长方形面积(带参数函数demo)
2020/01/18 Python
python图片指定区域替换img.paste函数的使用
2020/04/09 Python
Python类成员继承重写的实现
2020/09/16 Python
css3 border-image使用说明
2010/06/23 HTML / CSS
美国独家设计师眼镜在线光学商店:Glasses Gallery
2017/12/28 全球购物
size?爱尔兰官方网站:英国伦敦的球鞋精品店
2019/03/31 全球购物
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
MySQL面试题
2014/01/12 面试题
优秀导游先进事迹材料
2014/01/25 职场文书
志愿者活动总结
2014/04/28 职场文书
活动总结范文
2014/08/30 职场文书
销售员试用期自我评价
2014/09/15 职场文书
幼儿教师自我剖析材料
2014/09/29 职场文书
私人房屋买卖协议书
2014/10/04 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA