【发布时间】:2021-05-08 09:51:11
【问题描述】:
我在为变量使用 sha256 哈希时遇到问题。这是我的代码:
var = 'password'
hashedWord = sha256(b var).hexdigest()
print(hashedWord)
我知道这样做会更容易:
hashedWord = sha256(b'password').hexdigest()
print(hashedWord)
但我不想那样做。有人可以帮忙吗?
【问题讨论】:
我在为变量使用 sha256 哈希时遇到问题。这是我的代码:
var = 'password'
hashedWord = sha256(b var).hexdigest()
print(hashedWord)
我知道这样做会更容易:
hashedWord = sha256(b'password').hexdigest()
print(hashedWord)
但我不想那样做。有人可以帮忙吗?
【问题讨论】:
您需要将字符串编码为字节:
var = 'password'
hashedWord = sha256(var.encode('ascii')).hexdigest()
选择适合您的文本的编码; UTF-8 可以编码所有 Unicode,但可能不会产生您正在寻找的哈希签名;这取决于其他系统认为签名是什么。
【讨论】:
Martijn's 解决方案的替代方案是将字节字符串存储在 var 变量中。
var = b'password'
hashedWord = sha256(var).hexdigest()
print(hashedWord)
【讨论】: