用AES算法在Php中加密图像
我试图在上传时使用AES 128位加密图像,但文本被加密和解密,但我不知道如何在上传前加密图像。以下是我正在使用的AES代码: 代码:用AES算法在Php中加密图像,php,encryption,cryptography,Php,Encryption,Cryptography,我试图在上传时使用AES 128位加密图像,但文本被加密和解密,但我不知道如何在上传前加密图像。以下是我正在使用的AES代码: 代码: 文件名: 问题在于您没有加密图像,只加密文件名。因此,您需要从临时文件中读取文件内容,加密内容并将内容写入目标文件。随后将删除临时文件 if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "
文件名:
问题在于您没有加密图像,只加密文件名。因此,您需要从临时文件中读取文件内容,加密内容并将内容写入目标文件。随后将删除临时文件
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
$fileData = file_get_contents($_FILES["file"]["tmp_name"]);
$aes = new AES($fileData, $inputKey, $blockSize);
$encData = $aes->encrypt();
file_put_contents("upload/" . $_FILES["file"]["name"] . "jpg", $encData);
unlink($_FILES["file"]["tmp_name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"] . "jpg";
}
注:
- 加密的文件是Base64编码的,这可能不是您想要的,但由于您使用的是此AES实现,因此这是一致的
- 未加密的文件通过网络发送(当您不使用SSL/TLS时),并以未加密的形式在临时文件夹中短期存储
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
$fileData = file_get_contents($_FILES["file"]["tmp_name"]);
$aes = new AES($fileData, $inputKey, $blockSize);
$encData = $aes->encrypt();
file_put_contents("upload/" . $_FILES["file"]["name"] . "jpg", $encData);
unlink($_FILES["file"]["tmp_name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"] . "jpg";
}