Python:bcrypt对密码进行加密和校验
2023-09-14 09:07:13 时间
Modern(-ish) password hashing for your software and your servers
译文:软件和服务器的现代(-ish)密码哈希
文档:
安装
pip install bcrypt
使用示例
# -*- coding: utf-8 -*-
import bcrypt
passwd = '123456'
# 加密过程
salt = bcrypt.gensalt(rounds=10)
hashed = bcrypt.hashpw(passwd.encode(), salt)
print(salt)
# b'$2b$12$BlfmESsgNnsQFCmpUnhDWO'
print(hashed)
# b'$2b$12$BlfmESsgNnsQFCmpUnhDWO2RbacoHJViT8AZR1qh3DDOHnZxB.J5q'
# 校验过程
ret = bcrypt.checkpw(passwd.encode(), hashed)
print(ret) # True
封装成工具函数
# -*- coding: utf-8 -*-
"""
bcrypt_util.py
"""
import bcrypt
def encode_password(password: str) -> str:
"""
加密过程
:param password: str
:return: str
"""
salt = bcrypt.gensalt()
hashed = bcrypt.hashpw(password.encode(), salt)
return hashed.decode()
def check_password(password: str, hashed_password: str) -> bool:
"""
校验过程
:param password: str
:param hashed_password: str
:return: bool
"""
return bcrypt.checkpw(password.encode(), hashed_password.encode())
相关文章
- 如何为pycharm配置Python解释器_pycharm选择python解释器
- Python多线程通信_python socket多线程
- pycharm和python idle区别_python新手入门使用自带的IDLE、用pycharm还是visual studio ?…[通俗易懂]
- 日拱一卒,伯克利CS61A,两道题熟悉Python函数式编程
- python常用面试题_Python+Selenium 常见面试题整理[通俗易懂]
- python中矩阵的转置_[转]Python中的矩阵转置[通俗易懂]
- python解压bz2文件命令,在Python中解压缩.bz2文件
- python基础系列教程——Python的安装与测试:python解释器、PyDev编辑器、pycharm编译器
- json转字符串 python_Python读取json
- Python 冒泡排序_python
- python修改第三方库重写_对Python第三方库,再次封装
- python lambda表达式举例_Python中lambda表达式[通俗易懂]
- Python中12个常用模块的使用教程
- 【测试开发】python系列教程:Python 运算符
- 【2022新书】数据可视化与Python和JavaScript
- python-数据库编程-如何在Python中连接到数据库
- Python 的socke编程示例详解编程语言
- Python简易操作MySQL入门教程(python操作mysql)
- Python与MongoDB 无缝连接(python连接mongodb)
- python使用递归解决全排列数字示例