gpt4 book ai didi

php - 使用 MySQL 的 AES_ECRYPT 函数加密一个值,然后使用 PHP 在 URL 字符串中传递它

转载 作者:行者123 更新时间:2023-11-29 01:01:01 25 4
gpt4 key购买 nike

我需要使用 MySQL 的 AES_ENCRYPT 函数加密一个字符串,然后将该加密的字符串附加到 URL 的末尾,这样它就可以被另一端的 PHP 脚本解密和使用。

基本上,我正在加密字符串(使用 MySQL 的 AES_ENCRYPT),然后我使用 PHP 的 rawurlencode() 函数使其“URL 安全”。然后我将加密的字符串传递到一个 URL 中,然后由另一端的 PHP 脚本检索并成功解密……大约 95% 的时间。

似乎大约 5% 的字符串在加密过程中的某处被破坏,并且在通过 URL 传递后无法在另一端解码。有人可以帮我从这里出去吗?有没有 100% 万无一失的方法来做到这一点?我还尝试以不同的组合使用 urlencode() 和 base64_encode()。

谢谢。

最佳答案

已解决。

使用 MySQL 的 AES_ENCRYPT 函数加密字符串后,我使用 PHP 的 bin2hex() 函数将加密数据(二进制形式)转换为十六进制。然后我将十六进制作为字符串传递到 URL 的末尾。在另一端收到 URL 后,我便使用此自定义 PHP 函数将十六进制字符串恢复为二进制:

function hex2bin($data) {
$len = strlen($data);
return pack("H" . $len, $data);
}

从那里开始,剩下要做的就是使用 MySQL 的 AES_DECRYPT 函数和 wha-la 解密数据。成功恢复原字符串。

关于php - 使用 MySQL 的 AES_ECRYPT 函数加密一个值,然后使用 PHP 在 URL 字符串中传递它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3226057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com