如何散列用户输入定义的字符?

时间:2013-11-27 09:56:16

标签: python input hash

我已经废弃了一个程序,该程序将对由以下内容定义的一组字符进行哈希:

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

2 个答案:

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