Python3之md5、sha1 、bcrypt

时间:2021-06-04作者:klpeng分类:IT综合浏览:374评论:0

bcrypt 如果没有,需要安装 pip install bcrypt

代码定义了两个函数,是模拟php的两个加密、验证函数,可以用来跨语言验证密码。一般现在我们不建议使用md5 来对用户的密码进行加密了,所以模拟了php做了两个函数出来,可以用于用户密码加密、验证。

import hashlib
import bcrypt


def password_hash(password: str) -> str:
    '''hash加密
    '''
    # 生成一个salt
    salt = bcrypt.gensalt()
    hashed = bcrypt.hashpw(password.encode(), salt)
    return str(hashed, encoding='utf-8')


def password_verify(password: str, hash: str) -> bool:
    ''' 验证密码
    '''
    return bcrypt.checkpw(password.encode(), hash.encode())


if __name__ == '__main__':
    # md5
    res = hashlib.md5(b'123456').hexdigest()
    print(res)
    # sha1
    res = hashlib.sha1(b'123456').hexdigest()
    print(res)

    # 密码加密
    res = password_hash('123456')
    print(res)
    # 密码校验
    password = '123456'
    hash = '$2b$12$gxwIQDJu1vqE4zGGq1gR3e3RClPxAjsghHbgb52EnBHbdZo8iyFxK'
    if password_verify(password, hash):
        print('success')
    else:
        print('fail')

打赏
文章版权声明:除非注明,否则均为彭超的博客原创文章,转载或复制请以超链接形式并注明出处。
相关推荐

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

猜你喜欢