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对数组进行反转的方法
May 20 Python
Python实现简单的代理服务器
Jul 25 Python
Python实现公历(阳历)转农历(阴历)的方法示例
Aug 22 Python
分析Python中解析构建数据知识
Jan 20 Python
Python实现批量压缩图片
Jan 25 Python
python解决pandas处理缺失值为空字符串的问题
Apr 08 Python
python merge、concat合并数据集的实例讲解
Apr 12 Python
Django Rest framework之权限的实现示例
Dec 17 Python
python 实现读取一个excel多个sheet表并合并的方法
Feb 12 Python
python里 super类的工作原理详解
Jun 19 Python
Python 微信爬虫完整实例【单线程与多线程】
Jul 06 Python
在Python中用GDAL实现矢量对栅格的切割实例
Mar 11 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/01/23 PHP
smarty中post用法实例
2014/11/28 PHP
Laravel程序架构设计思路之使用动作类
2018/06/07 PHP
javascript 继承实现方法
2009/08/26 Javascript
ASP小贴士/ASP Tips javascript tips可以当桌面
2009/12/10 Javascript
javascript innerHTML使用分析
2010/12/03 Javascript
JavaScript实现多维数组的方法
2013/11/20 Javascript
浅析在javascript中创建对象的各种模式
2016/05/06 Javascript
AngularJs实现分页功能不带省略号的代码
2016/05/30 Javascript
NPM 安装cordova时警告:npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to
2016/12/20 Javascript
JavaScript实现打地鼠小游戏
2020/04/23 Javascript
基于input动态模糊查询的实现方法
2017/12/12 Javascript
js中自定义react数据验证组件实例详解
2018/10/19 Javascript
layui 实现自动选择radio单选框(checked)的方法
2019/09/03 Javascript
关于ckeditor在bootstrap中modal中弹框无法输入的解决方法
2019/09/11 Javascript
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
Vue表单控件数据绑定方法详解
2020/02/05 Javascript
node.js中fs文件系统模块的使用方法实例详解
2020/02/13 Javascript
jQuery实现开关灯效果
2020/08/02 jQuery
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
[07:54]DOTA2-DPC中国联赛 正赛 iG vs VG 选手采访
2021/03/11 DOTA
在Python的Django框架的视图中使用Session的方法
2015/07/23 Python
Python入门之三角函数tan()函数实例详解
2017/11/08 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
安装python时MySQLdb报错的问题描述及解决方法
2018/03/20 Python
Python自动化运维之Ansible定义主机与组规则操作详解
2019/06/13 Python
印尼旅游网站:via
2017/11/12 全球购物
创联软件面试题笔试题
2012/10/07 面试题
旅游管理毕业生自荐信
2013/11/05 职场文书
24岁生日感言
2014/01/13 职场文书
中学家长会邀请函
2014/01/17 职场文书
2014政务公开实施方案
2014/02/19 职场文书
2014年信贷员工作总结
2014/11/18 职场文书
学习焦裕禄观后感
2015/06/09 职场文书
win11系统中dhcp服务异常什么意思? Win11 DHCP服务异常修复方法
2022/04/08 数码科技