PHP での最も単純な双方向暗号化
概要
双方向暗号化には暗号化が含まれます秘密鍵を使用してデータを復号化します。 PHP は暗号化機能を提供しますが、ネイティブでサポートされている関数を利用して移植性を優先することをお勧めします。
ネイティブ実装
1. OpenSSL
サポートされているメソッドで openssl_encrypt() と openssl_decrypt() を使用します。として:
これは簡単です暗号化と復号化の例OpenSSL:
$message = 'Encrypted message'; $key = hex2bin('...'); $encrypted = openssl_encrypt($message, self::METHOD, $key, OPENSSL_RAW_DATA, $nonce); $decrypted = openssl_decrypt($encrypted, self::METHOD, $key, OPENSSL_RAW_DATA, $nonce);
2. libsodium (推奨)
移植性の要件が許せば、堅牢でよく管理された暗号化ライブラリとして libsodium 拡張機能を使用してください。
セキュリティに関する考慮事項
1.データの改ざん:
暗号化されていないデータは操作される可能性があるため、改ざんを検出して防止するために認証暗号化方式の使用を検討してください。
2.暗号化の破滅原則:
暗号化されたデータを認証すると改ざんが防止されますが、暗号化されていないデータを認証すると改ざんは防止されません。
3.安全でない認証された暗号化
提供された UnsafeCrypto クラスは、認証なしの単純な暗号化と復号化を示します。ただし、運用環境では使用しないでください。
SaferCrypto クラスは、UnsafeCrypto を拡張して認証を組み込み、暗号化されたデータが改ざんされないことを保証します。
移植性に関する懸念
移植性を優先する場合は、次のような信頼できる暗号化ライブラリの使用を検討してください。サポートされているアルゴリズムを使用した Sodium または PHP のネイティブ暗号化機能として機能します。
以上がネイティブ関数を使用して PHP で単純な双方向暗号化を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。