utf-8、pbkdf2_sha

#utf-8加密、解密

import base64

base64.b64encode('lienlien123'.encode('utf-8'))

b'bGllbmxpZW4xMjM='

base64.b64decode(b'bGllbmxpZW4xMjM='.decode('utf-8'))

b'lienlien123'

#pbkdf2_sha加密,校验

该种密码在不同时刻会有产生不同的加密结果

该加密方法使用的是散列消息,所以加密是不可逆的,

只能通过校验验证密码加密解密后是否一致,不可解密

PASSWORD_HASHERS = (

'django.contrib.auth.hashers.PBKDF2PasswordHasher',

'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',

'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',

'django.contrib.auth.hashers.BCryptPasswordHasher',

'django.contrib.auth.hashers.SHA1PasswordHasher',

'django.contrib.auth.hashers.MD5PasswordHasher',

'django.contrib.auth.hashers.CryptPasswordHasher',

)

from django.contrib.auth.hashers import make_password, check_password

pwd='lienlien123'

产生加密后密码

make_password()的第二位参数为None时,每次产生的加密结果都不一样,

当加入任意参数时,既可以相同

mpwd=make_password(pwd,None,'pbkdf2_sha256')

校验加密后是否相同

pwd_bool=check_password(pwd,mpwd)

print(pwd_bool)

相关推荐
挨踢诗人5 分钟前
旺店通ERP集成金蝶云星空解决方案
python·数据集成
码界索隆7 分钟前
Python转Java系列:作者有话说
java·开发语言·python
未来智慧谷10 分钟前
【无标题】
人工智能·python·大模型·ai幻觉
码界索隆1 小时前
Python转Java系列:前言
java·开发语言·python
金銀銅鐵1 小时前
用 Tkinter 实现一个罗马数字转整数的简单工具
后端·python
MC皮蛋侠客2 小时前
Ruff 完全指南:下一代 Python Linter 与 Formatter
python
happylifetree2 小时前
Python014-第二章13.数据容器-tuple案例
python
茉莉玫瑰花茶3 小时前
LangGraph 其他核心能力 [ 3 ]
python·ai
AI玫瑰助手3 小时前
Python函数:递归函数的定义与阶乘案例实现
开发语言·python·信息可视化
武子康3 小时前
调查研究-155 Open-LLM-VTuber 本地部署与互动实战指南
人工智能·python·深度学习·ai·数字人