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脚本
May 22 Python
Python中循环后使用list.append()数据被覆盖问题的解决
Jul 01 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
Jul 12 Python
python学生管理系统学习笔记
Mar 19 Python
Python3日期与时间戳转换的几种方法详解
Jun 04 Python
django-allauth入门学习和使用详解
Jul 03 Python
python递归法实现简易连连看小游戏
Mar 25 Python
flask框架url与重定向操作实例详解
Jan 25 Python
Python 保存加载mat格式文件的示例代码
Aug 04 Python
Python还能这么玩之用Python做个小游戏的外挂
Jun 04 Python
详解如何用Python实现感知器算法
Jun 18 Python
Python FuzzyWuzzy实现模糊匹配
Apr 28 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的面试题集,附我的答案和分析(一)
2006/11/19 PHP
一个基于phpQuery的php通用采集类分享
2014/04/09 PHP
关于PHP通用返回值设置方法
2017/03/31 PHP
微信JSSDK分享功能图文实例详解
2019/04/08 PHP
JQuery分别取得每行最后一列和最后一行的示例代码
2013/08/18 Javascript
页面载入结束自动调用js函数示例
2013/09/23 Javascript
javascript 用函数语句和表达式定义函数的区别详解
2014/01/06 Javascript
js操纵dom生成下拉列表框的方法
2014/02/24 Javascript
JS实现简易图片轮播效果的方法
2015/03/25 Javascript
jquery+html5时钟特效代码分享(可设置闹钟并且语音提醒)
2020/03/30 Javascript
AngularJs实现ng1.3+表单验证
2015/12/10 Javascript
jquery简单插件制作(fn.extend)完整实例
2016/05/24 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
2016/07/21 Javascript
jQuery基于cookie实现换肤功能实例
2017/10/14 jQuery
Vue使用枚举类型实现HTML下拉框步骤详解
2018/02/05 Javascript
Vue父子组件之间的通信实例详解
2018/09/28 Javascript
简单实现vue中的依赖收集与响应的方法
2019/02/18 Javascript
详解Vue中的scoped及穿透方法
2019/04/18 Javascript
解决layui追加或者动态修改的表单元素“没效果”的问题
2019/09/18 Javascript
python2.7读取文件夹下所有文件名称及内容的方法
2018/02/24 Python
详解Python发送email的三种方式
2018/10/18 Python
详解django中url路由配置及渲染方式
2019/02/25 Python
python用win32gui遍历窗口并设置窗口位置的方法
2019/07/26 Python
Python垃圾回收机制三种实现方法
2020/04/27 Python
PyTorch中Tensor的数据类型和运算的使用
2020/09/03 Python
纯css3制作的火影忍者写轮眼开眼至轮回眼及进化过程实例
2014/11/11 HTML / CSS
雅萌 (YA-MAN) :日本美容家电领域的龙头企业
2017/05/12 全球购物
什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
2012/05/23 面试题
工商学院毕业生自荐信
2013/11/12 职场文书
通信生自我鉴定
2014/01/18 职场文书
国窖1573广告词
2014/03/21 职场文书
庆元旦演讲稿
2014/09/15 职场文书
2014年个人业务工作总结
2014/11/17 职场文书
财务总监岗位职责范本
2015/04/03 职场文书
中小企业员工手册范本
2015/05/14 职场文书
如何书写读后感?(附范文)
2019/07/26 职场文书