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 11 Python
python使用Image处理图片常用技巧分析
Jun 01 Python
Python 爬虫之超链接 url中含有中文出错及解决办法
Aug 03 Python
在java中如何定义一个抽象属性示例详解
Aug 18 Python
Python语言描述随机梯度下降法
Jan 04 Python
python实现控制台打印的方法
Jan 12 Python
python实现爬山算法的思路详解
Apr 09 Python
python爬虫添加请求头代码实例
Dec 28 Python
django queryset 去重 .distinct()说明
May 19 Python
Python实现播放和录制声音的功能
Aug 12 Python
pandas针对excel处理的实现
Jan 15 Python
python3判断IP地址的方法
Mar 04 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代码
2012/09/14 PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
2013/02/14 PHP
php使用curl模拟登录后采集页面的例子
2013/11/04 PHP
jquery each()源代码
2011/02/14 Javascript
Tab页界面 用jQuery及Ajax技术实现(php后台)
2011/10/12 Javascript
单击浏览器右上角的X关闭窗口弹出提示的小例子
2013/06/12 Javascript
js模仿jquery的写法示例代码
2013/06/16 Javascript
jQuery判断checkbox(复选框)是否被选中以及全选、反选实现代码
2014/02/21 Javascript
基于编写jQuery的无缝滚动插件
2014/08/02 Javascript
jQuery使用append在html元素后同时添加多项内容的方法
2015/03/26 Javascript
AngularJS递归指令实现Tree View效果示例
2016/11/07 Javascript
vue源码学习之Object.defineProperty 对数组监听
2018/05/30 Javascript
Vue绑定内联样式问题
2018/10/17 Javascript
Vue中使用create-keyframe-animation与动画钩子完成复杂动画
2019/04/09 Javascript
Python写的创建文件夹自定义函数mkdir()
2014/08/25 Python
Python使用Flask框架同时上传多个文件的方法
2015/03/21 Python
django 捕获异常和日志系统过程详解
2019/07/18 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
flask框架url与重定向操作实例详解
2020/01/25 Python
Python IDE环境之 新版Pycharm安装详细教程
2020/03/05 Python
详解python os.path.exists判断文件或文件夹是否存在
2020/11/16 Python
太阳镜仓库,售价20美元或更少:Sunglass Warehouse
2016/09/28 全球购物
自我鉴定的范文
2013/10/03 职场文书
十佳青年个人事迹材料
2014/01/28 职场文书
房地产财务部员工岗位职责
2014/03/12 职场文书
宣传工作经验材料
2014/06/02 职场文书
2015年材料员工作总结
2015/04/30 职场文书
小学生心理健康活动总结
2015/05/08 职场文书
2015年学校总务处工作总结
2015/05/19 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书
教你用eclipse连接mysql数据库
2021/04/22 MySQL
python爬虫之selenium库的安装及使用教程
2021/05/23 Python
SpringDataJPA实体类关系映射配置方式
2021/12/06 Java/Android
25张裸眼3D图片,带你重温童年的记忆,感受3D的魅力
2022/02/06 杂记
Windows server 2012 R2 安装IIS服务器
2022/04/29 Servers
教你使用Ubuntu搭建DNS服务器
2022/09/23 Servers