您当前的位置: 首页 >  Python

Python:bcrypt对密码进行加密和校验

彭世瑜 发布时间:2020-10-29 14:09:51 ,浏览量:2

Modern(-ish) password hashing for your software and your servers

译文:软件和服务器的现代(-ish)密码哈希

文档:

  • https://pypi.org/project/bcrypt/
  • https://github.com/pyca/bcrypt/

安装

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())

关注
打赏
1688896170
查看更多评论

彭世瑜

暂无认证

  • 2浏览

    0关注

    2771博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0476s