答案複製源,並已創建了這個兩個功能
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ç>ÑÑ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;
這給了正確的答案
在解密字符串之前,您需要'base64_decode'。 – 2012-08-01 19:01:27
我沒有得到它..你會創建兩個函數,我試圖創建和發佈答案? – 2012-08-01 19:05:33
@RobertK你在哪裏看到它沒有被base64解碼?我在工作和非工作版本中都看到'base64_decode($ string)'... – 2012-08-01 19:17:33