【发布时间】:2021-10-08 17:14:11
【问题描述】:
在这种情况下,我想使用 base64 将图像转换为字符串。然后我使用 ord() 方法转换为整数。但我有一个错误。这是我的简单代码:
def input_image_to_string():
filename = filedialog.askopenfile(
initialdir="/",
title="Pilih Gambar",
filetypes=(
("png files", "*.png"),
("jpg files", "*.jpg"),
("bmp files", "*.bmp")
)
)
image = filename.name
with open(image, 'rb') as file:
result = base64.b64encode(file.read())
return result
def Hash_the_image(string, panjang):
input = [ord(character) for character in string]
print("Convert to Integers: \n" , input)
pesan_block = array_t(uint8_t, panjang)
masukan = pesan_block([uint8(i) for i in input])
hasil = gimli_hash(masukan, panjang)
print("Hasil hashing: ")
return hasil
if __name__ == "__main__":
input = input_image_to_string()
panjang = len(input)
print(panjang)
output = Hash_the_image(input, panjang)
print(output)
这是我的错误:
TypeError: ord() 预期长度为 1 的字符串,但找到了 int
【问题讨论】:
-
docs.python.org/3/library/base64.html#base64.b64encode 返回 字节。您可能还想避免使用 input、string 之类的名称。第二个函数参数不应该存在,你可以得到函数内部的长度。
标签: python python-3.x