Django密码系统实现过程详解


Posted in Python onJuly 19, 2019

一、Django密码存储和加密方式

#算法+迭代+盐+加密

<algorithm>$<iterations>$<salt>$<hash>

默认加密方式配置

#settings里的默认配置
PASSWORD_HASHERS = [
  'django.contrib.auth.hashers.PBKDF2PasswordHasher',
  'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
  'django.contrib.auth.hashers.Argon2PasswordHasher',
  'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',
  'django.contrib.auth.hashers.BCryptPasswordHasher',
]

#PASSWORD_HASHERS[0]为正在使用的加密存储方式,其他为检验密码时,可以使用的方式

默认加密方式配置

所有支持的hasher

[
  'django.contrib.auth.hashers.PBKDF2PasswordHasher',
  'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
  'django.contrib.auth.hashers.Argon2PasswordHasher',
  'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',
  'django.contrib.auth.hashers.BCryptPasswordHasher',
  'django.contrib.auth.hashers.SHA1PasswordHasher',
  'django.contrib.auth.hashers.MD5PasswordHasher',
  'django.contrib.auth.hashers.UnsaltedSHA1PasswordHasher',
  'django.contrib.auth.hashers.UnsaltedMD5PasswordHasher',
  'django.contrib.auth.hashers.CryptPasswordHasher',
]

所有支持的hasher

二、手动校验密码

#和数据库的密码进行校验
check_password(password, encoded)

#手动生成加密的密码,如果password=None,则生成的密码永远无法被check_password()
make_password(password, salt=None, hasher='default')

#检查密码是否可被check_password()
is_password_usable(encoded_password)

三、密码格式验证

AUTH_PASSWORD_VALIDATORS = [

#检验和用户信息的相似度
  {
    'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
  },

#校验密码最小长度
  {
    'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    'OPTIONS': {
      'min_length': 9,
    }
  },

#校验是否为过于简单(容易猜)密码
  {
    'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
  },

#校验是否为纯数字
  {
    'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
  },
]

四、自定义

  • 自定义hash算法
  • 对已有hash算法升级
  • 自定义密码格式验证

官方原文

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python中使用PIL模块处理图像的教程
Apr 29 Python
浅谈python配置与使用OpenCV踩的一些坑
Apr 02 Python
python装饰器深入学习
Apr 06 Python
关于python写入文件自动换行的问题
Jun 23 Python
python输出100以内的质数与合数实例代码
Jul 08 Python
对python for 文件指定行读写操作详解
Dec 29 Python
Python3匿名函数lambda介绍与使用示例
May 18 Python
python无序链表删除重复项的方法
Jan 17 Python
python 通过邮件控制实现远程控制电脑操作
Mar 16 Python
浅析Python迭代器的高级用法
Jul 16 Python
用python给csv里的数据排序的具体代码
Jul 17 Python
python如何在word中存储本地图片
Apr 07 Python
Tensorflow实现酸奶销量预测分析
Jul 19 #Python
Python实现基于SVM的分类器的方法
Jul 19 #Python
Tensorflow模型实现预测或识别单张图片
Jul 19 #Python
python django下载大的csv文件实现方法分析
Jul 19 #Python
python使用flask与js进行前后台交互的例子
Jul 19 #Python
Django 模型类(models.py)的定义详解
Jul 19 #Python
Tensorflow实现神经网络拟合线性回归
Jul 19 #Python
You might like
php的curl封装类用法实例
2014/11/07 PHP
php实现utf-8转unicode函数分享
2015/01/06 PHP
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
jquery中动态效果小结
2010/12/16 Javascript
Javascript this 的一些学习总结
2012/08/31 Javascript
Javascript中常见的校验如域名、手机、邮箱等等
2014/01/02 Javascript
Jquery中ajax方法data参数的用法小结
2014/02/12 Javascript
JS生成不重复随机数组的函数代码
2014/06/10 Javascript
浅谈javascript中replace()方法
2015/11/10 Javascript
实例讲解jquery与json的结合
2016/01/07 Javascript
EasyUI在Panel上动态添加LinkButton按钮
2017/08/11 Javascript
JavaScript轮播停留效果的实现思路
2018/05/24 Javascript
vue js秒转天数小时分钟秒的实例代码
2018/08/08 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
2019/06/03 Javascript
微信小程序实现卡片层叠滑动效果
2019/06/21 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
Python中文件遍历的两种方法
2014/06/16 Python
Python爬取网页中的图片(搜狗图片)详解
2017/03/23 Python
python爬虫_自动获取seebug的poc实例
2017/08/05 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
python实现自动发送邮件发送多人、群发、多附件的示例
2018/01/23 Python
Python字符串格式化%s%d%f详解
2018/02/02 Python
Python 实现一行输入多个值的方法
2018/04/21 Python
python paramiko利用sftp上传目录到远程的实例
2019/01/03 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
2019/12/18 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
2020/01/20 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
2020/08/04 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
OpenCV读取与写入图片的实现
2020/10/13 Python
网易微博Web App用HTML5开发的过程介绍
2012/06/13 HTML / CSS
HTML5实现获取地理位置信息并定位功能
2015/04/25 HTML / CSS
预备党员思想汇报范文
2013/12/29 职场文书
学校运动会开幕演讲稿
2014/01/04 职场文书
社区七一党员活动方案
2014/01/25 职场文书
面试必备的求职信
2014/05/25 职场文书
离婚协议书样本
2015/01/26 职场文书