Django默认用户登录make_password函数原生代码实现

2023-11-01

from hashlib import pbkdf2_hmac
from random import choice
from base64 import b64encode


# 随机数所使用的字符串
serct_str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"

# 拼接长度12位的随机字符串
salt = "".join(choice(serct_str) for i in range(12))

# 使用hmac加密方式进行加密, 循环次数为15万次
hash = pbkdf2_hmac(password="Aa123456.".encode("utf-8"),
                   salt=salt.encode("utf-8"),
                   iterations=150000, dklen=None, hash_name="sha256")

# 使用base64的ASCII编码进行解密
hash = b64encode(hash).decode("ascii").strip()

# 最后一次sha256方式加密
password = "%s$%d$%s$%s" % ("pbkdf2_sha256", 150000, salt, hash)
print(password)

这是通过阅读框架源码得知的Django默认密码加密方式,亲测有效;

若有错误敬请指出

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

Django默认用户登录make_password函数原生代码实现 的相关文章

随机推荐

  • python使用socket高效传输视频数据帧(连续发送图片)

    遇到的问题 网上找了一些代码 都是只能建立一次socket传输一张图片 然后断开重新连重新传 而建立一次socket代价不小 反复建立会非常消耗系统资源 因此尝试自己通过一次socket连续传输多张图片 代码问题记录 需要代码的可以直接文末
  • STM32系列(HAL库)——F103C8T6使用SPI方式点亮OLED

    目录 1 软件准备 2 硬件准备 3 CubeMX配置 1 芯片选择 2 配置RCC SYS 时钟树 3 配置SPI 4 配置GPIO 5 生成代码工程 4 代码移植 1 复制文件 2 在Keil5里添加文件 3 修改oled h文件 4
  • 【2023】华为OD机试真题全语言-题目0229-响应报文时间

    题目0229 响应报文时间 题目描述 IGMP 协议中 有一个字段称作最大响应时间 Max Response Time HOST收到查询报文 解析出MaxResponseTime字段后 需要在 0 MaxResponseTime s 时间内
  • 【JS】去除字符串首尾空格、所有空格

    1 去除所有空格 function trim str return str replace s g 2 去除首尾空格 去除字符串str头尾的空格 param str 字符串 return str去除头尾空格后的字符串 function tr
  • unittest和pytest的区别

    unittest是python的官方库 功能较少 pytest是第三方库 是基于unittest的扩展框架 可支持多种插件 目前有100多种 功能强大 pytest可兼容unittest写的用例 代码完全不用更改 一 用例编写方面 1 测试
  • LDR指令和LDR伪指令详解

    ARM32位指令的构成 ARM是RISC结构 数据从内存到CPU之间的移动只能通过LDR STR指令来完成 32bit 指令码 数据 所以32bit的一条指令不可能表示再带一个32bit的数据 实际只有其中的12bit来表示立即数 其中4b
  • 原生JS(JavaScript)

    JS 是JavaScript的简述 JS基于对象和事件驱动脚本语言 作用在浏览器上 JS的事件 onsubmit 主要用于表单的提交 绑定的位置在form标签里面 要有返回标记 如果提交的数据校验未通过 不允许表单提交 onload 用于页
  • chromedp 显示窗口

    chromedp现在默认是无头模式的 但是有的时候我们看浏览器执行的状态 还有部分操作是在无头模式下报错 所以需要显示窗口 opts append chromedp DefaultExecAllocatorOptions chromedp
  • [Unity 3d] 修改从asset store上下载的package的地址

    2020 9 16补充更新 在转移sims4的mod文件时又遇到这个问题 一直不成功 然后发现忘了要先把原文件转移到目标目录然后把原文件删了 mklink error cannot create a file when that file
  • Linux:进程等待wait函数&阻塞

    进程等待的作用 父进程在它的执行代码中调用进程等待的方法 等待子进程退出 防止子进程变成僵尸进程 也就是说 进程等待是父进程调用某个接口进行等待 父进程等待子进程退出回收子进程的资源 防止子进程变成僵尸进程 进程等待的方法 如何让父进程进行
  • Ceph概述 部署Ceph集群 Ceph块存储--

    案例1 实验环境 案例2 部署ceph集群 案例3 创建Ceph块存储 1 案例1 实验环境 1 1 问题 准备四台KVM虚拟机 其三台作为存储集群节点 一台安装为客户端 实现如下功能 创建1台客户端虚拟机 创建3台存储集群虚拟机 配置主机
  • python模板模式_模板模式-Python

    这篇文章完全摘录自别人 等后续 基于自己在项目中的应用 再重新写一下 模板方法模式 Template Method Pattern 定义一个操作中的算法骨架 将一些步骤延迟至子类中 模板方法使得子类可以不改变一个算法的结构即可重定义该算法的
  • Mac 怎样安装虚拟机(VMware fusion 12)

    虚拟机软件有 1 VirtualBox 一款免费开源的虚拟机软件 2 VMware fusion 12 也是一款免费开源的虚拟机软件 3 VMware Player 4 VMware workstation 5 Microsoft Virt
  • 40W-100W系列PD快充IC方案,AH6680,高效简洁的升降压芯片

    PD40W45W50W55W65W100W移动电源大功率芯片 40W 100W系列PD快充IC方案 AH6680 高效简洁的升降压芯片 PD40W45W50W65W大功率充电芯片 宽电压输入3 6 V至32 V 最大36 V 同步4开关双向
  • CoerceValueCallback事件的使用

    定义依赖属性 public static readonly DependencyProperty ValueProperty DependencyProperty Register Value typeof decimal typeof N
  • 正交

    正交的概念类似几何中垂直的概念 连个向量点乘的结果等于0我们称这两个向量正交 我们可以用向量正交的概念来看勾股定理 假设a b是两个向量 那么 a 的平方加上 b 的平方等于 a b 的平方当切仅当向量a b正交的时候才成立 如果一个sub
  • Input值不可修改

    Input值不可修改 要固定input标签里面的值不能被修改 我这里有两种方法 1 为input标签设置只读模式 设置只读模式之后 整个文本框就都会被封住 input标签里面的值就不能被手动删除和修改 不能再添加新的内容 有两种方式设置只读
  • UnityEditor中建立两个Color,实现mesh的颜色渐变(Gradient)(GUI.changed,SceneView.RepaintAll())

    shader只是测试用 不用在意 Shader Custom Vertex Properties SubShader Lighting Off Pass CGPROGRAM pragma vertex vert pragma fragmen
  • ElementUI框架引入和使用

    安装使用有两种方式 npm cnpm安装到项目中 CDN引入 先介绍CDN引入 CDN全称 Content Delivery Network即内容分发网络 CDN是构建在网络之上的内容分发网络 依靠部署在各地的边缘服务器 通过中心平台的负载
  • Django默认用户登录make_password函数原生代码实现

    from hashlib import pbkdf2 hmac from random import choice from base64 import b64encode 随机数所使用的字符串 serct str abcdefghijkl