0

我正在寻找一种相当安全的单行 PHP 加密/解密函数(不仅仅是简单地使用 base64 进行混淆),并且字符串可以通过 GET 传递而不会在另一端被破坏。

我尝试了以下方法,但对解密的字符串没有任何运气:

$string = 'domain.com|path|lang|010502599040475829162|'.$_SERVER["REMOTE_ADDR"];
$encrypt = base64_encode(mcrypt_ecb(MCRYPT_DES, 'A41Hfls', $string, MCRYPT_ENCRYPT));


$decrypt = mcrypt_ecb(MCRYPT_DES, 'A41Hfls', base64_decode($_GET['encrypt']), MCRYPT_DECRYPT);
echo $decrypt;

输出:~�K�_��8�E��*撺p)특t`��;-�&f͂p�>Q���r�����O�8����o� f�>?�</p>

4

2 回答 2

0

尝试首先对字符串进行urldecode

$encrypt = base64_decode(urldecode($_GET['encrypt']));
$decrypt = mcrypt_ecb(MCRYPT_DES, 'A41Hfls', $encrypt, MCRYPT_DECRYPT);
于 2013-10-10T07:39:33.740 回答
0

如果您从 URL 发送请求,那么您需要在服务器上执行以下操作。

$data_encrypt = $_GET['data_encrypt'];

//查找空格并将它们转换为+ //原因是当您使用url向服务器发送请求时,它会将+转换为空格。$data_encrypt= str_replace(" ","+",$data_encrypt);

$data_decrypt=mcrypt_ecb(MCRYPT_DES,'A41Hfls',base64_decode($data_encrypt), MCRYPT_DECRYPT);

另一件事是启用 utf8 编码,您正在重新渲染此输出。

于 2016-12-08T15:04:50.933 回答