我已经废弃了一个程序,该程序将对由以下内容定义的一组字符进行哈希:
hash_object = hashlib.sha256(b'Test')
我想让用户输入要散列的内容,而不是每次我想要散列不同于“Test”的东西时都要编辑程序。
这是程序现在的样子,虽然第二行目前没用,但应该是我输入要散列的字符串的地方。
如何让这个程序将'x'识别为hash_object?
目前的计划:
import hashlib
x = input("")
hash_object = hashlib.sha256(b'Test')
hex_dig = hash_object.hexdigest()
print("Original hash : ", hex_dig)
print("Every 9 characters: ", hex_dig[::5])
wait = input()
用户Paul Evans问我是否可以使用
hash_object = hashlib.sha256(x)
我不能因为它给了我这个错误:
Traceback (most recent call last):
File "C:\Users\einar_000\Desktop\Python\Hash.py", line 3, in <module>
hash_object = hashlib.sha256(x)
TypeError: Unicode-objects must be encoded before hashing
答案 0 :(得分:0)
hash_object = hashlib.sha256(x)
答案 1 :(得分:0)
所以正确的答案有点类似于Paul Evans所说的,只有你需要添加
.encode()
所以,程序现在看起来像这样:
import hashlib
x = input("")
hash_object = hashlib.sha256(x.encode())
hex_dig = hash_object.hexdigest()
print("Original hash : ", hex_dig)
print("Every 9 characters: ", hex_dig[::5])
wait = input()