ホームページ > バックエンド開発 > PHPチュートリアル > php mcryptを有効化、暗号化、復号化する方法の紹介

php mcryptを有効化、暗号化、復号化する方法の紹介

WBOY
リリース: 2016-07-25 09:00:01
オリジナル
1014 人が閲覧しました
  1. $str = "私は李雲です";
  2. $cipher = MCRYPT_RIJNDAEL_128;
  3. $iv = m crypt_create_iv(mcrypt_get_iv_size ( $cipher,$mode),MCRYPT_RAND);
  4. echo "元のテキスト:".$str."
    ";
  5. $str_encrypt = mcrypt_encrypt($cipher,$key,$str,$mode,$iv );
  6. echo "暗号化されたコンテンツは次のとおりです: ".$str_encrypt."
    "
  7. $str_decrypt = mcrypt_decrypt($cipher,$key,$mode,$iv);復号化コンテンツ: ".$str_decrypt."
    ";
  8. ?>
  9. コードをコピー
結果を実行します: 原文:私は李雲です 暗号化されたコンテンツは次のとおりです: 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);
  1. //暗号化されたパスワード:
  2. $key = "123qwe.019860905061x";
  3. $text = "私の名前はアダム・リーです!" < br>n ";
  4. //暗号化されたコンテンツ:
  5. $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
  6. echo $crypttext. "n
    ";
  7. //暗号化されたコンテンツを復号化する:
  8. $str_decrypt = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $crypttext, MCRYPT_MODE_ECB, $iv);
  9. echo $str_decrypt
  10. //元のリンク http://bbs.it-home.org/article/7382.html
  11. ? >
  12. コードをコピー
  13. 暗号化/復号化リクエストの例:
  14. $request_params = array(

    'controller' => 'todo', 'action' => 'read',

    'username' => "bl",
    'userpass' => "a1"
      );
    1. $private_key = "28e336ac6c9423d946ba02d19c6a2632"
    2. //リクエストを暗号化します
    3. $enc_request =base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $private) _key、json_encode($request_params)、MCRYPT_MODE_ECB)); echo "CRYPT:".$enc_request."
      ";
    4. //リクエストを復号化
    5. $params = json_decode(trim(mcrypt_decrypt( MCRYPT_RIJNDAEL_256, $private_key,base64_decode($enc_request), MCRYPT_MODE_ECB )), true );
    6. echo "ENCRYPT:
      ";
    7. //結果を出力
    8. var_dump($params)>
    9. 注: 暗号化関数と復号化関数のパラメーター cipher、key、mode は 1 対 1 に対応している必要があり、そうでない場合はデータを復元できません。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート