加密文件时保持文件类型

时间:2015-10-07 18:43:10

标签: python encryption encoding bytearray

我在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)保存在我用来保存数据的文件名中,但生成的文件不会作为图像打开。为什么呢?

1 个答案:

答案 0 :(得分:0)

如果您希望图像可以被图像程序读取,则需要查找JPEG或您选择的图像格式的规格。

See this related question或谷歌JPEG文件格式&幻数规范。

为最小的JPEG文件制作样板数据后,您可以将加密数据注入文件中的适当位置并将其写回磁盘。

您可能还需要创建一个函数来从原始图像文件中去除JPEG样板文件,这样您就只能加密实际图像数据而不加密样板文件字节。