この質問の回答からソースをコピーしました
この2つの関数を作成しました
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–=“VSã
これが間違っているのは、復号化が正しい出力を提供していないことです。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;
これは正しい答えを与える