You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

bcrypt哈希报错TypeError:字符串哈希前需编码的问题求助

解决bcrypt哈希时的TypeError错误

bcrypt库要求用于哈希的字符串必须是字节类型,而Python中input()函数返回的是字符串(str类型),直接传入hashpw()就会触发TypeError: Strings must be encoded before hashing错误。另外原代码里bcrypt.gensalt没加括号,这会把函数对象传给hashpw(),而不是生成的盐值,这也是需要修正的问题。

修正后的代码如下:

elif b == "hashing":
    d = input("what do you want to hash ")
    # 将输入字符串编码为字节,同时调用gensalt()生成盐
    bl = bcrypt.hashpw(d.encode('utf-8'), bcrypt.gensalt())
    print(bl)

如果后续需要验证哈希值,同样要把待验证的字符串编码成字节后,再使用bcrypt.checkpw()方法进行对比。

内容的提问来源于stack exchange,提问作者Armin Niazi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 00:12:34