我试图发送一个图像从一台电脑到另一台电脑加密.我在发送方机器上编码,它到达接收方机器没有问题.然而,当我试图解码它,它似乎总是返回错误...
while True:
data = connection.recv(2000000)
if data:
b= data.decode("utf-8")
b=decrypt(b,key)
print(b)
with open('encode.bin', "wb") as file:
file.write(b)
file = open('encode.bin', 'rb')
byte = file.read()
file.close()
decodeit = open('camera.jpeg', 'wb')
decodeit.write(base64.b64decode((byte)))
decodeit.close()
打印B可以得到:b'/9j/4AAQSkZJRgABAQAAAQ......oooA/9k='
,我相信这是正常的,因为当我把它粘贴到一个在线的Base64 str到img工具时,我得到了我发送的图片。错误是:TypeError: a bytes-like object is required, not 'str'
和它引用到file.write(b)
行....我不能弄清楚是什么问题,但我坚信这不是由于加密解密.可能与如何处理字符串数据.任何帮助是赞赏!提前感谢!
2条答案
按热度按时间kq0g1dla1#
将字节串解码为UTF-8会得到一个字符串。你可能会看到来自其他地方的打印,因为
print(b)
应该打印一个字符串。这就是为什么file.write(b)
会抱怨。它需要字节,但b
是一个字符串。bprjcwpo2#
我终于成功了,我删除了前两个字母(显然是b ')和最后一个字符('),它工作得很好!