我在python中编写了一个AES密码,以帮助我理解它在软件中的实现。
我正在使用以下方法将文件内容读入bytearray:
with open(self.plaintext_file_path, 'rb') as f:
self.plaintext_data = bytearray(f.read())
然后plaintext_data通过密码运行并输出ciphertext_data。 然后在使用:
加密字节后将其保存回文件with open(fname, 'wb') as f:
f.write(self.ciphertext_data)
文件扩展名(例如.jpg)保存在我用来保存数据的文件名中,但生成的文件不会作为图像打开。为什么呢?
答案 0 :(得分:0)
如果您希望图像可以被图像程序读取,则需要查找JPEG或您选择的图像格式的规格。
See this related question或谷歌JPEG文件格式&幻数规范。
为最小的JPEG文件制作样板数据后,您可以将加密数据注入文件中的适当位置并将其写回磁盘。
您可能还需要创建一个函数来从原始图像文件中去除JPEG样板文件,这样您就只能加密实际图像数据而不加密样板文件字节。