プロジェクトを行うとき、必然的にインターフェースを使用してデータをリクエストしたり、インターフェースを通じて他のアプリケーションにデータを提供したりすることになりますが、ネットワークリクエストでは、データが他のソフトウェアによってキャプチャされる可能性があります。データが漏洩したり改ざんされたりしないように、実際のプロジェクトではどのように対処すればよいでしょうか。
いくつかの暗号化アルゴリズムについて簡単に説明します。
1.DES 対称暗号化アルゴリズム (正式名は Data Encryption Standard) は、キーを使用する暗号化のタイプです。ブロックアルゴリズム。暗号化文字列の長さは64ビット(bit)であり、ビット数を超える暗号化文字列は無視されます。いわゆる対称暗号化とは、暗号化キーと復号化キーが同じであることを意味します。対称暗号化では、一般に、暗号化する文字列を固定長に従ってブロックに分割します。これはブロック全体より短いか、または最初の部分に特別なパディング文字が存在します。終わり。 (Feistel 反復暗号 16 回、ブロック長 64 ビット、64 ビット長を 56 ビット鍵で暗号化)
2. AES Advanced Encryption Standard (英語: Advanced Encryption Standard、略称: AES)、暗号化ラインダール暗号方式とも呼ばれます。 DES のアップグレード版で、AES のブロック長は 128 ビット、オプションの鍵長は 128 ビット、192 ビット、256 ビットの 3 つで、ラウンド数はそれぞれ 10、12、14 です。
3.RSA 暗号化アルゴリズムは非対称暗号化アルゴリズムです。公開キーを使用して暗号化されたデータは、秘密キーを使用して復号化されます。暗号化または署名後の結果は読み取り不可能なバイナリとなり、多くの場合、BASE64 コードに変換されます。
#4.SHA1 と MD5 は、あらゆるサイズのデータをより小さい固定長の一意の値にマッピングするハッシュ アルゴリズムです。暗号的に強力なハッシュは不可逆的でなければなりません。これは、ハッシュ結果から元の情報のいかなる部分も推定できないことを意味します。 関連する推奨事項: 「php 入門チュートリアル 」
最初のタイプのインターフェイス暗号化:
送信者と受信者の合意暗号化されたソルト値は署名の生成に使用されます。両者はデータを並べ替え、MD5 暗号化用に暗号化されたソルト値を結合して署名を生成します。その後、送信者と受信者はデータを受信し、合意された暗号化手順に従って署名します。検証により、データが正確で改ざんされていないことが保証されますが、送信されたデータは他の人に見える可能性があります。 例: md5(url?age=12&name=xiaomign&key=1234567890)2 番目のインターフェイス暗号化:
送信者と受信者の同意 暗号化ソルト値、暗号化方式、暗号化ベクトルを使用してデータを対称的に暗号化し、使用時に復号化します。 例:$method = "AES-128-CBC"; $key = "2911827315869D7F"; $iv = "1234567812345678"; $passcrypt = openssl_encrypt(json_encode(['name'=>'xiaoming', 'age' => 19]), $method, $key, OPENSSL_RAW_DATA, $iv); echo base64_encode($passcrypt); $data = base64_decode($request_data); $data = openssl_decrypt($data, $method, $key, OPENSSL_RAW_DATA, $iv); $data = json_decode($data, true);私たちが使用する htts プロトコルは、RSA アルゴリズムと対称暗号化アルゴリズムを使用してデータを暗号化して送信します。 1. クライアントはサーバーへの SSL 接続リクエストを開始します; 2. サーバーは公開キーをクライアントに送信し、サーバーは一意の秘密キーを保存します; 3. クライアントは、公開キーを使用して、双方が通信した対称秘密キーを暗号化し、それをサーバーに送信します; 4. サーバーは、独自の一意の秘密キーを使用して、送信された対称秘密キーを復号化します, このプロセス中、仲介者はそれを復号化できません (サーバー側だけが固有の秘密鍵を持っているため、クライアントですら復号化できません)。これにより、送受信プロセス中の対称秘密鍵のセキュリティが確保されます。 . 現時点では、サーバー側とクライアントはまったく同じ対称キーのセットを持っています。 5. データ送信では、サーバーとクライアントの両方が同じ公開対称鍵を使用してデータの暗号化と復号化を行うため、データの送受信プロセス中のセキュリティを確保できます。データ パッケージも暗号化、復号、改ざんできません。
以上がPHPインターフェースを暗号化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。