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

Image 如何在RSA中显示加密图像,image,encryption,rsa,Image,Encryption,Rsa,我的程序应该加密图像使用RSA(得到这部分)。结果是带有数字的字符串(或字节数组) 我的问题是:如何在例如Windows img浏览器中显示加密图像?我想证明算法是有效的 我是否应该跳过标题的某些部分,或者在文件的开头添加一些导致它被视为图像的内容 我在寻找答案,但我发现的这一点不起作用。如果您想显示问题和评论中讨论的加密图像,您可以简单地生成或加载一些随机白噪声来代替图像-无论是加密的视觉信息还是其他噪声,在视觉上都无关紧要 但是,如果不对图像进行整体加密,则不会对图像进行加密。标题通常包含有

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

我的问题是:如何在例如Windows img浏览器中显示加密图像?我想证明算法是有效的

我是否应该跳过标题的某些部分,或者在文件的开头添加一些导致它被视为图像的内容


我在寻找答案,但我发现的这一点不起作用。

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

但是,如果不对图像进行整体加密,则不会对图像进行加密。标题通常包含有关大小、创建日期、创建程序、作者、调色板等的元信息,这些信息与图像本身一样有价值。使用jpg,取决于所选择的压缩级别和图像信息,图像主体可以具有不同的大小-通过加密该信息无法不可避免地匹配大小。大多数图像格式也有类似的论点

此外,由于无法更改大小(否则最终会导致缓冲区不足或解密时溢出),因此没有合理的方法只加密图像的主体


如果您仍然想以这种不安全的方式陷入灾难:您只需将rsa的输出解释为字节序列(或您处理的任何图像格式的主体),而不是rsa给出的输出格式(尽管我想知道,它应该是字节)。

听起来您也想要吃蛋糕并拥有它。解密加密图像并将解密图像与原始图像进行比较。还有:即使它“不起作用”,你发现了什么?它怎么不“工作”?我只想显示加密的字节。我理解,若我编码的图像,它将是静态图像,但混乱,什么也看不见。如果我错了,请纠正我。当我尝试使用Image.FromStream显示它时,会出现System.ArgumentException如果对图像进行加密,它会变成一个难以辨认的字节序列,不允许判断其来源,无论是从图像,文本或随机字节-使用适当的密钥解密后,它只会返回到图像中。但我只能加密文件的字节量,而不更改头。它给了我一些结果(如果我在头后的每个字节中都加上值50,就会显示出混乱的东西)。问题是,它的值可以高达255,但如果我用RSA编码,它会给我超过1000000的值(我的密钥是长数字)。加密文件的一部分似乎很愚蠢,特别是当涉及到图像时,如果不是百分之几十的格式,每个格式都需要单独处理(是的,你不能依赖文件扩展名)。简单地用图像部分RSA的一些输出替换一些像素值当然不起作用,也不可能达到预期的效果。加密部分的长度也不一定与输入的大小相同(考虑填充等)。谢谢,这个答案让我头脑清醒,现在我知道我在处理什么:)