Django密码存储和加密方式

2023-05-16

#算法+迭代+盐+加密
<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]为正在使用的加密存储方式,其他为检验密码时,可以使用的方式
[
    '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',
]

二、手动校验密码

#和数据库的密码进行校验
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',
    },
]

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django密码存储和加密方式 的相关文章

随机推荐

  • 可编程的SQL是什么样的?

    背景 如果你使用传统编程语言 xff0c 比如Python xff0c 那么恭喜你 xff0c 你可能需要解决大部分你不需要解决的问题 xff0c 用Python你相当于拿到了零部件 xff0c 而不是一辆能跑的汽车 你花了大量时间去组装汽
  • 写给我的2013

    前沿 xff1a 代码看的累了 xff0c 在新的一年终于可以找点时间来回忆我的2013 想着要写点什么 xff0c 可是又没有什么可以写 因为回忆无非就是夹杂着些许痛苦与欢乐 写给我的2013 家 生活 xff1a 2013年 xff0c
  • 写给我的2014——也写给我即将逝去的研究生生涯

    前言 xff1a 2014 1在写着代码的时写下了回忆 xff0c 2015 1在码着论文的时候开始写起消逝的2014 细细回忆 xff0c 真是又是那句老话 xff0c 时间过得真快 xff0c 1年过去了 xff1b 更快的是竟然都要毕
  • Cannot load driver ‘C:\Keil_v5\ARM\Segger\JL2CM3.dll 报错解决方法。

    Cannot load driver 39 C Keil v5 ARM Segger JL2CM3 dll 报错解决方法 昨天在我的win10电脑上突然又弹出这个提示 xff0c 期间我一直没有更新过keil和jlink驱动 xff0c 很
  • stm32f030 使用16M晶体

    大部分的开发板都是用8M晶体 xff0c 代码也是用的8M晶体配置 一次开发过程中因为板子体积有限 选择了SMD3225的晶振 xff0c 在LCSC检索发现8M的晶体比16M普遍贵3倍多 所以将代码适配为16M 修改的地方只动了两个地方
  • FreeRtos学习笔记(10)任务切换原理刨析

    FreeRtos学习笔记 xff08 10 xff09 任务切换原理刨析 STM32 单片机启动流程中介绍了SP和PC寄存器 xff0c STM32单片机bootloader扫盲中说过如何通过控制SP和PC寄存器从而控制程序从bootLoa
  • FreeRTOS白话入门

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 何为RTOS真的很牛叉吗 xff1f 二 RTOS主要干了些啥 xff1f 啥都能干吗 xff1f 实时是个什么概念 x
  • STM32关闭PWM输出时,让IO输出固定高或低电平的方法。

    看到有很多人在网上询问停止PWM时如何获取固定输出 xff0c 记录在此供参考 方法1 xff1a 设置占空比为0xffff 或0 后即可得到想要的0或1输出 方法2 xff1a 配置回通用IO口 xff0c 再设置为0或1 以上两种方法是
  • STM32 USB 之从0开始移植笔记

    STM32 USB 之从 0 开始移植笔记 动机 写在前面的话 xff1a 最近逛淘宝无意间发现 RC522 居然只要 10 元左右就可以包邮买到 xff0c 真是太便宜了 xff0c 就忍不住买了个回来玩玩 到货移植到我的板子上 OK 后
  • PADS Logic Decal、Layout Decal绘制

    PADS Logic Decal Layout Decal绘制 绘制Logic Decal图形 xff1a 1 Gate Decal与Part Type的区别 Gate Decal 即元器件在原理图中所展现出来的形状 Part Type 将
  • __packed 关键字 的作用

    在移植机智云的代码时 xff0c 因为结构体里用了太多的变量 xff0c 为了节省ram空间 所以加了个 packed关键字修饰 举个例子 xff1a struct char a 1byte int b 4byte char c 2 2by
  • 如何将Python算法模型注册成Spark UDF函数实现全景模型部署

    本文作者来自Byzer社区 amp Kyligence 机器学习平台工程师 Andie Huang 背景 Background 对于算法业务团队来说 xff0c 将训练好的模型部署成服务的业务场景是非常常见的 通常会应用于三个场景 xff1
  • PADS软件基础与应用实例pdf 带书签 完整版免费下载

    内容提要 全书共11个项目 xff0c 主要内容包括 xff1a PADS软件的概述和安装 xff1b PADSLogic认知一 xff1a 绘制单级共射放大电路原理图 xff1b PADSLogic认知二 xff1a 元件库管理 xff1
  • Ubuntu 20.04 安装docker(傻瓜试一键教程)

    更新 apt 包索引 sudo apt update 安装依赖包 sudo apt install apt transport https ca certificates curl gnupg2 software properties co
  • Arduino通过串口发送结构体

    Arduino的串口有两类发送的函数Serial print 类和Serial write 类 xff0c 前者以Ascii码的形式将要发送的内容编码发送 xff0c 所以我们最后接收并看到的是一个一个的ASCII码组合而成的数据 xff0
  • Java并发编程78讲--52 第52讲:信号量能被 FixedThreadPool 替代吗?

    这一课时我们将介绍控制并发流程的工具类 xff0c 作用就是更容易地让线程之间相互配合 xff0c 比如让线程 A 等待线程 B 执行完毕后再继续执行 xff0c 来满足业务逻辑 本课时我们从 Semaphore xff08 信号量 xff
  • 2021-10-10 解决cmake报错:cmake The source directory “xxxx“ does not appear to contain CMakeLists.txt

    解决cmake报错 xff1a cmake The source directory xxxx does not appear to contain CMakeLists txt 执行 cmake命令时报错 xff1a The source
  • 解决MyEclipse保存时出现“Save could not be completed”问题

    在MyEclipse下编程时 xff0c 保存的时候 xff0c 如果出现 Save could not be completed 错误 xff1a MyEclipse的默认编译语言是 34 ISO 8859 1 34 xff0c 这个语言
  • freertos是跑的多线程,而不是多进程

    1 简单来讲进程和线程本质都是CPU时分复用 xff0c 当然了多核有同时跑的成分 2 线程之间是共用地址空间的 xff0c 进程之间的地址空间是独立的 3 基于第2点 xff0c 像freertos这样的小型嵌入式os xff0c 其多任
  • Django密码存储和加密方式

    算法 43 迭代 43 盐 43 加密 lt algorithm gt lt iterations gt lt salt gt lt hash gt settings里的默认配置 PASSWORD HASHERS 61 39 django