如何将数组中的项目转换为字节以进行散列?
How to turn items in an array into bytes for hashing?
我正在尝试散列通过 easygui 输入的用户输入。 Easygui 将输入存储到一个数组中(我认为),所以当我尝试对用户输入进行哈希处理时,我不确定如何将其转换为字节。
这是我的代码:
import hashlib
import easygui
g = hashlib.sha256(b'helloworld').hexdigest()
l = easygui.enterbox('enter password')
f = hashlib.sha256([l]).hexdigest()
print(g)
print(f)
理想情况下,如果我在 easygui 中输入 'helloworld',它应该 return 相同的散列输出。
当前错误是:
"TypeError: object supporting the buffer API required" at the line f = haslib.sha256([l]).hexdigest()
easygui.enterbox
returns 用户输入的文本,或者 None 如果他取消操作。您必须将返回的文本转换为字节数组。 Docs
if l is not None:
f = hashlib.sha256(l.encode()).hexdigest()
您必须先对给定的字符串进行编码,然后才能对其进行哈希处理。最简单的方法是,只使用为字符串实现的 encode() 方法。
f = hashlib.sha256(l.encode()).hexdigest()
print(f)
使用 return 你的 sha256 哈希。
我正在尝试散列通过 easygui 输入的用户输入。 Easygui 将输入存储到一个数组中(我认为),所以当我尝试对用户输入进行哈希处理时,我不确定如何将其转换为字节。
这是我的代码:
import hashlib
import easygui
g = hashlib.sha256(b'helloworld').hexdigest()
l = easygui.enterbox('enter password')
f = hashlib.sha256([l]).hexdigest()
print(g)
print(f)
理想情况下,如果我在 easygui 中输入 'helloworld',它应该 return 相同的散列输出。
当前错误是:
"TypeError: object supporting the buffer API required" at the line f = haslib.sha256([l]).hexdigest()
easygui.enterbox
returns 用户输入的文本,或者 None 如果他取消操作。您必须将返回的文本转换为字节数组。 Docs
if l is not None:
f = hashlib.sha256(l.encode()).hexdigest()
您必须先对给定的字符串进行编码,然后才能对其进行哈希处理。最简单的方法是,只使用为字符串实现的 encode() 方法。
f = hashlib.sha256(l.encode()).hexdigest()
print(f)
使用 return 你的 sha256 哈希。