1

私はこの機能を使用しています:

function encryptData($value) { 
   $key = "top secret key";
   $text = $value; 
   $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); 
   $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); 
   $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv); 
   return $crypttext;
} 

function decryptData($value) { 
   $key = "top secret key"; 
   $crypttext = $value; 
   $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); 
   $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); 
   $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $crypttext, MCRYPT_MODE_ECB, $iv); 
   return trim($decrypttext); 
}

login.php

$time = time() + 60*60*24*30*12; //store cookie for one year
setcookie('cookie_name', encryptCookie('username'), $time, '/');
$cookie_value = decryptCookie($_COOKIE['cookie_name']);

Cookie が設定され、機能しています。

質問:

  • のコンテンツを復号化して$_COOKIE['cookie_name']印刷するにはどうすればよいですか?

次の行に出力する必要があります。

so.addVariable("uid", "<? if ($_COOKIE['username']) print $_COOKIE['username']; ?>");
4

1 に答える 1

0

自分で暗号化と復号化を行うコードを提供しました。

暗号化されたユーザー名を Cookie に保存するには、次のようにします。

$time = time()+60*60*24*30*12; //store cookie for one year
setcookie('username', encryptCookie($username), $time, '/');

後で暗号化された Cookie からユーザー名を取得するには、次を使用します。

echo decryptCookie($_COOKIE['username']);
于 2013-06-30T17:05:16.550 に答える