Color Modes

加密或解密图像

加密图像解密图像加密和解密注意事项

大多数图像的设计初衷是为了被很多人频繁查看。例如,网页图像可能每天会被大量访客查看数百次。但是,在某些情况下,您可能希望将特定图像保持私密,以便只有您或可能是一些选定的朋友或网站访客才能查看它。ImageMagick 允许您对图像进行加密,这样除非有人知道您的密码短语,否则他们将无法查看原始内容。

您可以使用 加密 实用程序来加密您的图像,但它们通常会加密整个文件,使其无法识别为图像格式。使用 ImageMagick,只有像素会被加密。加密后的图像仍然会被识别为图像,甚至可以在您的网页中显示。但是,内容看起来像是乱码,与原始内容完全不同。

加密图像

使用 -encipher 选项来加密您的图像,使其无法识别。此选项需要一个包含您的密码短语的文件名。在这个例子中,我们加密一个图像并将其保存为 PNG 格式

magick rose.jpg -encipher passphrase.txt rose.png 

这里我们使用另一个图像作为密码短语来加密图像

magick rose.jpg -encipher smiley.gif rose.png 

解密图像

使用 -decipher 选项来解密您的图像,使其再次可识别。此选项需要一个包含您的密码短语的文件名。在这个例子中,我们解密一个图像并将其保存为 JPEG 格式

magick rose.png -decipher passphrase.txt rose.jpg 

加密和解密注意事项

某些格式不支持加密的像素,例如 JPEG 或 GIF 格式。为了确保您的图像格式受支持,请先加密一个测试图像,并在加密任何其他相同格式的图像之前验证您是否可以恢复其原始内容。

图像格式可能仅支持 8 位和 RGB(真彩色)。因此,您可能希望在输出文件名之前包含选项“ -depth 8 -type TrueColor”。

密码短语可以是字母和符号的任何组合。它应该至少包含 12 个字符的组合,以帮助确保您的图像保持私密。还要确保您的密码短语文件权限阻止其他人读取它,否则意外的用户可能会能够查看原始图像内容。

只有知道密码短语才能恢复原始图像内容。如果您丢失或忘记它,您的原始图像内容将永远丢失。

ImageMagick 仅对图像像素进行加密。图像元数据保持不变,任何有权访问图像文件的人都可以读取。

ImageMagick 使用 AES 密码以计数器模式。我们使用密码短语的前半部分来推导出 nonce。后半部分是密码密钥。如果使用正确,AES-CTR 可以提供高水平的机密性。为了避免信息泄漏,您必须为加密的每个图像使用新的密码短语。

目前只有 ImageMagick 可以恢复加密的图像内容。我们使用标准的密码和模式,以便其他供应商可以支持加密的图像内容。

可以在 IM 示例 加密图像数据 中找到一些关于图像加密的小型实用示例。