- $str = "私は李雲です";
- $cipher = MCRYPT_RIJNDAEL_128;
- $iv = m crypt_create_iv(mcrypt_get_iv_size ( $cipher,$mode),MCRYPT_RAND);
-
- echo "元のテキスト:".$str."
"; - $str_encrypt = mcrypt_encrypt($cipher,$key,$str,$mode,$iv );
- echo "暗号化されたコンテンツは次のとおりです: ".$str_encrypt."
" -
- $str_decrypt = mcrypt_decrypt($cipher,$key,$mode,$iv);復号化コンテンツ: ".$str_decrypt."
";
- ?>
-
-
- コードをコピー
-
-
結果を実行します:
原文:私は李雲です
暗号化されたコンテンツは次のとおりです: B @鴹?=(I褣Z%
復号化されたコンテンツ: 私はリーユンです
1) PHP 暗号化拡張ライブラリ Mcrypt を使用してデータを暗号化および復号化する前に、まず初期化ベクトル (略して iv と呼ばれます) を作成します。 $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher,$modes),MCRYPT_RAND); から、初期化ベクトルの作成には 2 つのパラメーターが必要であることがわかります。size は iv のサイズを指定し、source は iv のソースであり、値 MCRYPT_RAND は次のとおりです。システム乱数。
2) 関数 mcrypt_get_iv_size($cipher,$modes) は、初期化ベクトルのサイズを返します。パラメーター cipher と mode は、それぞれアルゴリズムと暗号化モードを参照します。
3)、暗号化関数 $str_encrypt = mcrypt_encrypt($cipher,$key,$str,$modes,$iv); この関数の 5 つのパラメーターは次のとおりです: cipher—暗号化アルゴリズム、key—key、data( str)—暗号化する必要があるデータ、mode—アルゴリズムモード、iv—初期化ベクトル
4)、復号化関数 mcrypt_decrypt($cipher,$key,$str_encrypt,$modes,$iv); この関数と暗号化関数のパラメーターはほぼ同じです。唯一の違いはデータです。つまり、データはデータです。復号化する必要があるのは、生データ $str ではなく、$ str_encrypt です。
//マニュアルに書くこと:
//初期化ベクトル iv のサイズを指定します: $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); // 初期化ベクトルを作成します: $iv = mcrypt_create_iv($) iv_サイズ、 MCRY PT_RAND); - //暗号化されたパスワード:
- $key = "123qwe.019860905061x";
- $text = "私の名前はアダム・リーです!" < br>n ";
- //暗号化されたコンテンツ:
- $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
- echo $crypttext. "n
"; - //暗号化されたコンテンツを復号化する:
- $str_decrypt = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $crypttext, MCRYPT_MODE_ECB, $iv);
- echo $str_decrypt
- //元のリンク http://bbs.it-home.org/article/7382.html
- ? >
-
-
- コードをコピー
-
-
- 暗号化/復号化リクエストの例:
-
-
$request_params = array(
'controller' => 'todo', 'action' => 'read', 'username' => "bl", 'userpass' => "a1" ); -
- $private_key = "28e336ac6c9423d946ba02d19c6a2632"
-
- //リクエストを暗号化します
- $enc_request =base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $private) _key、json_encode($request_params)、MCRYPT_MODE_ECB)); echo "CRYPT:".$enc_request."
"; -
- //リクエストを復号化
- $params = json_decode(trim(mcrypt_decrypt( MCRYPT_RIJNDAEL_256, $private_key,base64_decode($enc_request), MCRYPT_MODE_ECB )), true );
- echo "ENCRYPT:
"; -
- //結果を出力
- var_dump($params)>
-
-
- 注:
暗号化関数と復号化関数のパラメーター cipher、key、mode は 1 対 1 に対応している必要があり、そうでない場合はデータを復元できません。
-
-
-
-
-
-
-
|