FastAPI 中使用 bcrypt 加密密码:确保加密一致性和安全
在 FastAPI 官方文档中,一串字符串先使用 bcrypt 进行加密,然后放在 db 字典中,再输入密码加密进行对比是否相等。那请问如何确保第一串字符串 bcrypt 加密后和第二串相同的字符串 bcrypt 加密后一样呢,如何生成的第一串 bcrypt 加密后的字符串内容:
要确保第一串字符串 bcrypt 加密后和第二串相同的字符串 bcrypt 加密后一样,需要使用相同的 salt 值。在 bcrypt 加密中,salt 值是随机生成的,所以需要将第一次加密时生成的 salt 值存储在 db 字典中,以便后续使用相同的 salt 值进行加密。
生成第一串 bcrypt 加密后的字符串可以使用 bcrypt 库提供的 hashpw 函数,示例如下:
import bcrypt
password = 'secret'
salt = bcrypt.gensalt() # 生成 salt 值
hashed_password = bcrypt.hashpw(password.encode('utf-8'), salt) # 使用 salt 值加密密码
在上述示例中,使用 gensalt 函数生成 salt 值,然后使用 hashpw 函数将密码和 salt 值一起加密,生成哈希值。生成的哈希值可以存储在 db 字典中,以便后续进行密码验证。
原文地址: https://www.cveoy.top/t/topic/nJxw 著作权归作者所有。请勿转载和采集!