PHP での文字列の暗号化と復号化
よくある落とし穴の回避
実装を詳しく調べる前に暗号化と復号化の違いを理解することが重要です。暗号化と認証。データを安全に保護するには、単純な暗号化よりも認証された暗号化をお勧めします。さらに、カスタム暗号実装の作成を避け、代わりに libsodium や defuse/php-encryption などの安全で確立されたライブラリに依存することをお勧めします。
暗号化と復号化
暗号化:
復号化:
Libsodium による実装
use Sodium\Crypto\SecretBox; $key = random_bytes(SecretBox::KEYBYTES); $nonce = random_bytes(SecretBox::NONCEBYTES); $ciphertext = SecretBox::encrypt($message, $nonce, $key); $plaintext = SecretBox::decrypt($ciphertext, $nonce, $key);
defuse/php-encryption による実装
use Defuse\Crypto\Crypto; use Defuse\Crypto\Key; $key = Key::createNewRandomKey(); $ciphertext = Crypto::encrypt($message, $key); $plaintext = Crypto::decrypt($ciphertext, $key);
追加考慮事項
注意事項
Libsodium を使用した例
use Sodium\Crypto\SecretBox; $key = random_bytes(SecretBox::KEYBYTES); $nonce = random_bytes(SecretBox::NONCEBYTES); $ciphertext = SecretBox::encrypt($message, $nonce, $key); $plaintext = SecretBox::decrypt($ciphertext, $nonce, $key); echo "Ciphertext: " . $ciphertext . PHP_EOL; echo "Plaintext: " . $plaintext . PHP_EOL;
以上が確立されたライブラリを使用して PHP で文字列を安全に暗号化および復号化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。