Python Bcrypt 哈希介绍

发布时间: 更新时间: 总字数:286 阅读时间:1m 作者: IP上海 分享 网址

Python bcrypt 模块是一个用来生成强哈希值的库。本文介绍如何使用bcrypt库对密码进行哈希操作,包括加密、哈希和加盐

介绍

  • bcryptNiels ProvosDavidMazières 基于 Blowfish 密码设计的密码哈希功能,bcrypt 算法 通过 加盐 + 哈希 生成密码,通过 成本因数 控制复杂度
  • 常见加密算法
  • 在线 bcrypt 工具

安装

pip install bcrypt

使用

生成密码

使用 Python bcrypt 模块生成密码哈希

cat << EOF > gene_bcrypt.py
#!/usr/bin/env python3

import bcrypt

passwd = b'abc'

salt = bcrypt.gensalt()
hashed = bcrypt.hashpw(passwd, salt)

print(salt)
print(hashed)
EOF
  • 示例
$ python3 gene_bcrypt.py
b'$2b$12$H3q7dMVWVHoyVbAq7yyRuu'
b'$2b$12$H3q7dMVWVHoyVbAq7yyRuuskqAGFp4vFVTEtTCv3.9BOb6qlEOou.'
$ python3 gene_bcrypt.py
b'$2b$12$gd2ndHmrx1.8Qlru0Wqwz.'
b'$2b$12$gd2ndHmrx1.8Qlru0Wqwz.G0vA4IcERcN3wv3dFwrehhDnkFx6zMu'

说明:不同 生成不同的 哈希值

检查密码

使用 Python bcrypt 模块验证密码哈希

cat << EOF > check_bcrypt.py
#!/usr/bin/env python3

import bcrypt

passwd = b'abc'

salt = bcrypt.gensalt()
hashed = bcrypt.hashpw(passwd, salt)

if bcrypt.checkpw(passwd, hashed):
    print("Match!")
else:
    print("Not Match!")
EOF
  • 验证是否匹配
$ python3 check_bcrypt.py
Match!

成本因子

Python bcrypt 成本因子

salt = bcrypt.gensalt(rounds=16)

通过生成 rounds 控制,上述示例成本因子为 16

Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数