如何显示在 RSA 中加密的图像

How display image encrypted in RSA

我的程序应该使用 RSA 加密图像(知道这部分)。结果是带有数字的字符串(或字节数组)。

我的问题是:我怎样才能显示加密图像,例如Windowsimg浏览器?我想证明该算法正在运行。

我应该跳过 header 的某些部分还是在文件的开头添加一些内容,这会导致它被视为图像?

我正在寻找答案,但这是我发现的,行不通。

如果您想显示问题和评论中讨论的加密图像,您可以简单地生成或加载一些随机白噪声来代替图像——无论是加密的视觉信息还是一些其他噪音。

但是,如果您不对图像进行整体加密,图像就不会被加密。 headers 通常包含有关大小、创建日期、创建程序、作者、调色板等的元信息 - 这些信息可能与图像本身一样有价值。使用 jpg,根据选择的压缩级别和图像信息,图像的 body 可以是各种大小 - 通过加密该信息不可避免地匹配大小。类似的论点适用于大多数图像格式。

此外,由于您无法更改大小(否则您最终会在解密时出现缓冲区不足或溢出),因此没有仅加密图像 body 的明智方法。

如果你仍然想以这种不安全的方式进入灾难:你只需要将 rsa 的输出解释为字节序列(或者你处理的图像格式的任何 body) - 和不是 rsa 给出的输出格式(虽然我想知道,它应该是字节)。