httpHTTP サーバーと端末デバイス間の通信中、パケットはネットワーク (Android) によってキャプチャされ、逆コンパイルされることがよくあります。 APK 逆コンパイル ツール) およびその他のテクノロジーを使用して、HTTP 通信インターフェイス のアドレスとパラメーターを取得します。情報のセキュリティを確保するために、AES+RSA の組み合わせを使用してインターフェイス パラメーター を暗号化および復号化します。1. RSA について。暗号化メカニズム: 公開キーはデータの暗号化に使用され、秘密キーはデータの復号化に使用されます。公開キーと秘密キーは同時に生成され、互いに対応します。公開鍵で暗号化した後、暗号文を B に送信すると、B は秘密鍵と公開鍵を使用して復号化できます 2. AES 暗号化は対称暗号化とも呼ばれます: A が AES にパスワードを使用した後データを暗号化し、B は同じパスワードを使用して暗号文を復号化します。
具体的な操作方法:
1. openssl モードを使用して、キーの関連する
Key を持ち、サーバーは公開キー PublicKey と秘密キー
を持っていると仮定します。3. Android はサーバーにリクエストを送信します。Android は Byte[] ランダム パスワードをランダムに生成します。 RandomKey=123456 と仮定し、AES アルゴリズムを使用して 6. サーバーは、AES で暗号化された RandomKey データを受信し、秘密キーを使用して暗号化を解除します。 Android によって生成された元の RandomKey を取得します。 9. Android 端末は、Response データを受信した後、ローカルで生成された RandomKey を使用して AES 復号化を直接実行できます。 以下の詳細なフローチャートをご覧ください。 クライアントサーバーHTTPSデータ送信フローチャート注意事項
:1 実際の開発過程で、RSAとAESは暗号文生成規格が異なり、iOSと互換性がないことが判明しました。 IOS では、RSA アルゴリズムに JAVA とは異なる公開キーが必要です。詳細な解決策については、次を参照してください:2. jdk1.7 以降のバージョンは 128 バイトを超える KEY をサポートしていないため、AES 暗号化では 128 バイトを超える KEY を使用できません。
概要: パフォーマンス テストの結果、暗号化されたデータの送信から復号化されて元のデータが返されるまでのクライアント全体の時間は
以上がAES/RSA暗号化メカニズムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。