我正在寻找一个相当安全的单行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>?
首先尝试对字符串进行 url 解码
$encrypt = base64_decode(urldecode($_GET['encrypt']));
$decrypt = mcrypt_ecb(MCRYPT_DES, 'A41Hfls', $encrypt, MCRYPT_DECRYPT);
如果您从URL发送请求,则需要在服务器上执行以下操作。
$data_加密 = $_GET['data_encrypt'];
查找空格并将其转换为 +原因是当您使用 URL 向服务器发送请求时,有时会将 + 转换为空格。$data_encrypt= str_replace(" ","+",$data_encrypt(;
$data_decrypt=mcrypt_ecb(MCRYPT_DES,'A41Hfls',base64_decode($data_encrypt(, MCRYPT_DECRYPT(;
另一件事是启用 utf8 编码,您正在重新生成此输出。