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