并创建了这两个函数
function my_encrypt($string) {
$key="1234";
return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key),
$string, MCRYPT_MODE_CBC, md5(md5($key))));
}
function my_decrypt($string) {
$key="1234";
return rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key),
base64_decode($string), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
}
当我尝试使用下面显示的代码进行加密和解密时
$string="445676467";
echo $ecr=my_encrypt($string)."<br/>";
echo my_decrypt($ecr);
生成以下输出
01pEoOCsp7oloZTDMAKF / cxgB0YQFScje6Z8GBXu8Tw =
445676467>HŽÇeVJMç&GT;ÑÑBHc.-ãyeÇN - =“VSA
错误的是,解密没有给出正确的输出445676467
但是当我直接尝试这个
时$key="1234";
$string="2011";
$encrypted= base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256,
md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));
$decypted= rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key),
base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
echo $encrypted."<br/>";
echo $decypted;
这给出了正确的答案
答案 0 :(得分:2)
这很有趣,但原因是你的同义词。
我用了你的代码:
$string="445676467";
//You echo & put value in the var at the same time?? smells like troubles.
echo $ecr=my_encrypt($string)."<br/>";
echo my_decrypt($ecr);
结果:
01pEoOCsp7oloZTDMAKF/cxgB0YQFScje6Z8GBXu8Tw=
445676467�H���eVJM�>��BHc.��ye�N�=�VS�
并尝试过:
$string="445676467";
$ecr=my_encrypt($string);
echo $ecr;
echo my_decrypt($ecr);
结果:
01pEoOCsp7oloZTDMAKF/cxgB0YQFScje6Z8GBXu8Tw=
445676467
因此,您的功能没有任何问题,只是用法。 首先将值放入变量中,然后再将其打印出来。