まだデコードの問題です。
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --><?php function encryptCookie($value){ if(!$value){return false;} $key = 'paxospass1234!'; $text = $value; $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_CBC, $iv); return array(trim(base64_encode($crypttext)),$iv); //encode for cookie } function decryptCookie($value,$iv){ if(!$value){return false;} $value = base64_decode($value); $key = 'paxospass1234!'; $text = $value; // $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC); // $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_CBC, $iv); return $decrypttext; } $str="this is for encry"; $s=encryptCookie($str); echo decryptCookie($s[0],$s[1]); ?>
に入れるだけです。 <?php 関数 encryptCookie($value){ if(!$value){return false;} $key = 'paxospass1234!'; $text = $value; $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256,$key,$text, MCRYPT_MODE_CBC, $iv); $ivencode = mcrypt_encrypt(MCRYPT_RIJNDAEL_256,$crypttext,$iv,MCRYPT_MODE_ECB);//実際には、直接結合するだけで、ここで再度暗号化を実行します。 returnbase64_encode($crypttext.$ivencode); //Cookieのエンコード、ivは文字列の末尾に接続されます } 関数 decryptCookie($value){ if(!$value){return false;} $value = Base64_decode($value); $rvalue = substr($value,0,-32);//元の暗号化文字列 $iv = substr($value,-32);//iv $iv = mcrypt_decrypt(MCRYPT_RIJNDAEL_256,$rvalue,$iv,MCRYPT_MODE_ECB);//iv を復号化します $key = 'paxospass1234!'; $text = $rvalue; // $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC); // $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_CBC, $iv); $decrypttext を返します。 } $str="これは暗号化用です"; $s=encryptCookie($str); echo "encrypt:".$s."<br/>"; echo "復号化:".decryptCookie($s); ?><div class="clear"></div>