我正在寻找一个合理安全的单行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` ;- &fp >Q r O 8 的>
答案 0 :(得分:0)
首先尝试urldecoding字符串
$encrypt = base64_decode(urldecode($_GET['encrypt']));
$decrypt = mcrypt_ecb(MCRYPT_DES, 'A41Hfls', $encrypt, MCRYPT_DECRYPT);
答案 1 :(得分: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编码。