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函数嵌套实例
Sep 23 Python
Python获取单个程序CPU使用情况趋势图
Mar 10 Python
分析Python中解析构建数据知识
Jan 20 Python
pandas实现选取特定索引的行
Apr 20 Python
Python实现的绘制三维双螺旋线图形功能示例
Jun 23 Python
在dataframe两列日期相减并且得到具体的月数实例
Jul 03 Python
Python错误处理操作示例
Jul 18 Python
Pandas时间序列:时期(period)及其算术运算详解
Feb 25 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
May 23 Python
音频处理 windows10下python三方库librosa安装教程
Jun 20 Python
pandas实现导出数据的四种方式
Dec 13 Python
Python echarts实现数据可视化实例详解
Mar 03 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 has encountered an Access Violation at 7C94BD02解决方法
2009/08/24 PHP
php excel reader读取excel内容存入数据库实现代码
2012/12/06 PHP
PHP自动重命名文件实现方法
2014/11/04 PHP
PHP会员找回密码功能的简单实现
2016/09/05 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
jquery多浏览器捕捉回车事件代码
2010/06/22 Javascript
捕获键盘事件(且兼容各浏览器)
2013/07/03 Javascript
深入理解jQuery中live与bind方法的区别
2013/12/18 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
jQuery定义背景动态切换效果的方法
2015/03/23 Javascript
JavaSacript中charCodeAt()方法的使用详解
2015/06/05 Javascript
js将json格式的对象拼接成复杂的url参数方法
2016/05/25 Javascript
Javascript基础_标记文字的实现方法
2016/06/14 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
详解Vue自定义过滤器的实现
2017/01/10 Javascript
JS获取浮动(float)元素的style.left值为空的快速解决办法
2017/02/19 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
2017/10/19 jQuery
JavaScript运行原理分析
2018/02/09 Javascript
Nodejs模块载入运行原理
2018/02/23 NodeJs
解决vuejs项目里css引用背景图片不能显示的问题
2018/09/13 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
jQuery实现B2B网站后台管理系统侧导航
2020/07/08 jQuery
解决vux 中popup 组件Mask 遮罩在最上层的问题
2020/11/03 Javascript
Python urlopen 使用小示例
2008/09/06 Python
深入理解Python 代码优化详解
2014/10/27 Python
详解python中的文件与目录操作
2017/07/11 Python
Django添加favicon.ico图标的示例代码
2018/08/07 Python
Pytorch之finetune使用详解
2020/01/18 Python
python利用opencv实现颜色检测
2021/02/23 Python
老海军美国官网:Old Navy
2016/09/05 全球购物
澳大利亚和新西兰最大的在线旅行社之一:Aunt Betty
2019/08/07 全球购物
工程师岗位职责
2013/11/08 职场文书
精细化工应届生求职信
2013/11/17 职场文书
2014新课程改革心得体会
2014/03/10 职场文书
迎国庆演讲稿
2014/09/15 职场文书
2015年教育实习工作总结
2015/04/24 职场文书