PHP ImageMagick - 图片安全



在本节中,您将学习如何保护图像,以便只有发送者和预期接收者才能在网页上看到这些图像。

PHP Imagemagick 提供图像处理和操作功能,允许您保护图像免遭盗窃或未经授权的使用。现在,我们将讨论 PHP Imagemagick 的功能以及它们如何帮助您保护图像安全。

图像加密

Imagemagick 中名为 ‘encipherImage()’ 的内置函数有助于对图像进行加密。将普通像素图像转换为加密像素的过程在此函数中发生。只有可以使用给定密钥(“密码”)解密图像的查看者才能查看加密图像。

语法

public Imagick::encipherImage(string $passphrase): bool

此函数采用一个参数“密码”,该参数充当加密和解密图像的密钥。它以图像作为输入,使用密码对图像进行加密,并生成加密后的图像作为输出。

示例

在以下示例中,显示了 ‘encipherImage()’ 函数的实现。首先,必须创建一个新的 imagick 对象并以图像作为输入。定义“密码”,它是一个作为参数传递的字符串。然后,使用密码应用 ‘encipherImage()’ 函数,并获得加密后的图像作为输出。

<?php
   $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image.jpeg");
   $passphrase="Tutorials Point";
   $image->encipherImage($passphrase);
   $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/encipherImage.png");
?>

假设以下是在程序中使用的输入图像(image.jpeg):

Enciphering Image

输出

Enciphering Image

图像解密

Imagemagick 提供了一个内置函数 ‘decipherImage()’,该函数有助于解密图像。将加密图像转换为普通图像的过程称为解密图像。此函数以加密图像作为输入,使用密码将该图像转换为普通图像,并生成普通图像作为输出。

语法

public Imagick::decipherImage(string $passphrase): bool

此函数将“密码”作为参数。它有助于解密图像。

示例

以下示例显示了如何实现 'decipherImage()' 函数。首先,创建一个新的 Imagick 对象并以图像作为输入。您还需要定义一个作为参数传递的密码字符串。最后,使用您的密码使用 'decipherImage()' 函数获得解密后的图像作为输出。

<?php
   $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/encipherImage.png");
   $passphrase="Tutorials Point";
   $image->decipherImage($passphrase);
   $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/decipherImage.png");
?>

假设以下是在程序中使用的输入图像(encipherImage.png):

Deciphering Image

输出

Deciphering Image
广告