【发布时间】:2018-03-05 22:25:25
【问题描述】:
我正在尝试获取上传的图像,对图像进行加密,将其存储在 MySQL 中,然后在授权人员请求查看时对其进行解密以显示。
这是我目前的加密方式:
$image = addslashes(file_get_contents($_FILES['users_image']['tmp_name']));
$enc_image = encrypt($image, "long secret random key");
然后我将$enc_image 存储在 MySQL BLOB 字段中。当我尝试解密并打印它时,如下所示:
$img = decrypt($rec['file'], "long secret random key");
echo '<img src="data:image/jpeg;base64,'.base64_encode($img).'"/>';
我正在使用来自this Stackoverflow answer 的这段代码,我在输出中看到了解密的 base-64 文本,但它没有通过 HTML 显示。以下是试图恢复的加密图像示例:https://pastebin.com/miDCP3Gz
注意:我的“长秘密随机密钥”包括一个散列随机唯一盐,但我确信我使用相同的字符串进行加密和解密。
知道为什么不能正确显示吗?
【问题讨论】:
标签: php mysql encryption cryptography blob