WeChat ミニ プログラムは WeChat によって開発された新しいエクスペリエンスで、ユーザーはソフトウェアをインストールせずに Web ページの機能を直接使用できます。 WeChat ミニ プログラムでは、データのセキュリティを確保するために、開発者はデータの暗号化と復号化を行う必要があります。この記事では、WeChat アプレットにデータの暗号化と復号化を PHP で実装する方法を紹介します。
1. WeChat ミニ プログラムのデータ暗号化および復号化アルゴリズム
WeChat ミニ プログラムの暗号化および復号化アルゴリズムは、AES-128-CBC 暗号化モードに基づいており、16-バイトランダム文字列を初期ベクトルとして使用し、充填操作を実行します。データを暗号化または復号化するときは、パディングされたデータをそれに応じて処理する必要があります。
2. PHP はデータの暗号化と復号化を実装します
以下では、PHP で WeChat アプレットのデータ暗号化と復号化を実装する方法を詳しく紹介します。
PHP では、openssl ライブラリを使用してデータを暗号化する方法は次のとおりです:
function encrypt($data, $iv, $key){ $block_size = 16; //补位处理 $padding = $block_size - strlen($data) % $block_size; $data .= str_repeat(chr($padding), $padding); //加密 $encrypted = openssl_encrypt($data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv); return base64_encode($encrypted); }
上記のコードでは、$dataデータを暗号化する必要があります。$iv は初期ベクトル、$key はキーです。まず、データ長が 16 で割り切れるようにデータがパディングされ、次に openssl_encrypt 関数を使用してデータが暗号化され、base64 を使用して出力がエンコードされます。
PHP では、openssl ライブラリを使用してデータを復号化する方法は次のとおりです。
function decrypt($encrypted, $iv, $key){ $encrypted = base64_decode($encrypted); $decrypted = openssl_decrypt($encrypted, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv); //去除补位信息 $padding = ord(substr($decrypted, -1)); if($padding < 1 || $padding > $block_size) { $padding = 0; } $decrypted = substr($decrypted, 0, strlen($decrypted) - $padding); return $decrypted; }
上記のコードでは、$encryptedデータを復号化する必要があります。$iv は初期ベクトル、$key はキーです。まず、base64 を使用してデータがデコードされ、次に openssl_decrypt 関数を使用して復号化されます。復号化が完了したら、実際のデータを取得するためにパディング情報を削除する必要があります。
3. 概要
この記事では、WeChat アプレットのデータ暗号化と復号化のアルゴリズムと、PHP でのその実装について紹介します。使用中は、正しいキーと初期ベクトルを使用することに注意する必要があります。この記事の紹介を通じて、読者が WeChat ミニ プログラムのデータ暗号化と復号化の実装方法を習得し、ミニ プログラムの開発に役立つことを願っています。
以上がWeChat アプレットでのデータ暗号化と復号化の PHP 実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。