一行加密/解密PHP中的查询字符串

时间:2013-10-10 06:41:02

标签: php encryption query-string

我正在寻找一个合理安全的单行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 的>

2 个答案:

答案 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编码。