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多线程经典问题之乘客做公交车算法实例
Mar 22 Python
Pycharm学习教程(1) 定制外观
May 02 Python
pandas数据预处理之dataframe的groupby操作方法
Apr 13 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
Jun 14 Python
Python for循环中的陷阱详解
Jul 13 Python
浅谈django的render函数的参数问题
Oct 16 Python
详解python 3.6 安装json 模块(simplejson)
Apr 02 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
Jul 01 Python
python实现两个一维列表合并成一个二维列表
Dec 02 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
Feb 22 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
May 24 Python
解决pytorch 的state_dict()拷贝问题
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实现框架(二)
2006/10/09 PHP
PHP常用代码
2006/11/23 PHP
php魔术变量用法实例详解
2014/11/13 PHP
PHP中使用xmlreader读取xml数据示例
2014/12/29 PHP
PHP实现动态获取函数参数的方法示例
2018/04/02 PHP
javascript应用:Iframe自适应其加载的内容高度
2007/04/10 Javascript
不错的JS中变量相关的细节分析
2007/08/13 Javascript
jquery教程ajax请求json数据示例
2014/01/13 Javascript
tuzhu_req.js 实现仿百度图片首页效果
2015/08/11 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
jquery获取css的color值返回RGB的方法
2015/12/18 Javascript
动态加载JavaScript文件的两种方法
2016/04/22 Javascript
AngularJS 过滤与排序详解及实例代码
2016/09/14 Javascript
vue-music关于Player播放器组件详解
2017/11/28 Javascript
React中的render何时执行过程
2018/04/13 Javascript
vue环形进度条组件实例应用
2018/10/10 Javascript
node+multer实现图片上传的示例代码
2020/02/18 Javascript
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
Python大数据之使用lxml库解析html网页文件示例
2019/11/16 Python
Python Lambda函数使用总结详解
2019/12/11 Python
Python3操作YAML文件格式方法解析
2020/04/10 Python
纯CSS实现右侧底部悬浮效果(悬浮QQ、微信、微博、邮箱等联系方式)
2015/04/24 HTML / CSS
css3实现画半圆弧线的示例代码
2017/11/06 HTML / CSS
联想新西兰官方网站:Lenovo New Zealand
2018/10/30 全球购物
Charles & Colvard官网:美国莫桑石品牌
2019/06/05 全球购物
中英双版中文教师求职信
2013/10/27 职场文书
工厂厂长岗位职责
2013/11/08 职场文书
《草虫的村落》教学反思
2014/02/16 职场文书
公司会计主管岗位责任制
2014/03/01 职场文书
化学系大学生自荐信范文
2014/03/01 职场文书
管理学院毕业生自荐信范文
2014/03/10 职场文书
党支部三会一课计划
2014/09/24 职场文书
代办社保委托书范文
2014/10/06 职场文书
公司门卫岗位职责
2015/04/13 职场文书
公司更名通知函
2015/04/24 职场文书
Python实现简繁体转换
2021/06/07 Python