我正在尝试使用 Feistel 密码对图像进行编码。这个想法是获取一个图像文件,逐字节读取图像,用我的 Feistel 密码对每个字节进行编码,然后用密码生成的编码字节重新创建一个新图像。
不幸的是,我发现大多数常见的图像格式都使用标头,一旦编码,就会使编码的图像损坏。
查看 PIL 包,我发现该PIL.Image.frombytes
函数能够在给定对象的情况下创建图像BytesIO
对象。使用图像对象,我可以使用save
函数重新创建图像
我现在的问题是,如何打开图像并读取我需要使用 Feistel 密码处理的实际图像有效负载(以字节为单位)。
如果我使用代码
with open('image.jpg', 'rb') as file:
data = file.read()
我阅读了整个文件,包括我不需要的标题