Cryptage et déchiffrement de chaînes en PHP
Éviter les pièges courants
Avant de se plonger dans l'implémentation du cryptage et du déchiffrement, il est crucial de comprendre la différence entre le cryptage et l'authentification. Pour une protection sécurisée des données, le cryptage authentifié est recommandé plutôt que le cryptage simple. De plus, il est conseillé d'éviter de créer des implémentations de cryptographie personnalisées et de s'appuyer plutôt sur des bibliothèques sécurisées et bien établies comme libsodium ou defuse/php-encryption.
Cryptage et décryptage
Cryptage :
Déchiffrement :
Mise en œuvre avec 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);
Mise en œuvre avec defuse/php-encryption
use Defuse\Crypto\Crypto; use Defuse\Crypto\Key; $key = Key::createNewRandomKey(); $ciphertext = Crypto::encrypt($message, $key); $plaintext = Crypto::decrypt($ciphertext, $key);
Considérations supplémentaires
Précautions
Exemple avec 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;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!