如何对用户输入定义的字符进行哈希处理?

问题描述 投票:0回答:3

我已经拼凑了一个程序,该程序将散列由以下定义的一组字符:

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
python input hash
3个回答
0
投票

嗯,我错过了什么还是只是:

hash_object = hashlib.sha256(x)

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()

0
投票
from hashlib import sha256

def generate_sha256(your_text: str) -> str:
    return sha256(your_text.encode()).hexdigest()
© www.soinside.com 2019 - 2024. All rights reserved.