我已经拼凑了一个程序,该程序将散列由以下定义的一组字符:
hash_object = hashlib.sha256(b'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
嗯,我错过了什么还是只是:
hash_object = hashlib.sha256(x)
所以正确答案和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()
from hashlib import sha256
def generate_sha256(your_text: str) -> str:
return sha256(your_text.encode()).hexdigest()