Position actuelle: Accueil> Derniers articles> Un guide complet sur le cryptage et le déchiffrement des données PHP : implémentations symétriques, asymétriques et de hachage

Un guide complet sur le cryptage et le déchiffrement des données PHP : implémentations symétriques, asymétriques et de hachage

M66 2025-10-14

introduction

Dans l’environnement Internet moderne, la sécurité des données est d’une importance primordiale. Pour protéger les informations sensibles, les développeurs doivent souvent chiffrer et déchiffrer les données. En tant que langage côté serveur populaire, PHP fournit une multitude de fonctions et de bibliothèques de chiffrement et prend en charge plusieurs algorithmes de chiffrement. Cet article explique comment utiliser PHP pour implémenter le cryptage et le déchiffrement des données, et est accompagné d'un exemple de code pratique.

Utiliser un algorithme de chiffrement symétrique

L'algorithme de chiffrement symétrique est la méthode de chiffrement la plus couramment utilisée, également connue sous le nom de chiffrement à clé partagée. La même clé est utilisée pour le cryptage et le déchiffrement. PHP prend en charge une variété d'algorithmes de chiffrement symétriques, tels que AES, DES, 3DES, etc. Voici un exemple utilisant l'algorithme AES-256-CBC :

 fonction chiffrer ($ données, $ clé) {
    $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
    $encrypted = openssl_encrypt($data, 'aes-256-cbc', $key, 0, $iv);
    return base64_encode($iv . $encrypted);
}

fonction décrypter ($ données, $ clé) {
    $données = base64_decode($données);
    $iv = substr($data, 0, openssl_cipher_iv_length('aes-256-cbc'));
    $encrypted = substr($data, openssl_cipher_iv_length('aes-256-cbc'));
    return openssl_decrypt ($encrypted, 'aes-256-cbc', $key, 0, $iv);
}

$clé = 'clé_secrète';
$données = 'données_sensibles';

$encryptedData = chiffrer($data, $key);
echo 'Données cryptées : ' . $donnéescryptées . PHP_EOL;

$decryptedData = décrypter($encryptedData, $key);
echo 'Données décryptées : ' . $donnéesdécryptées . PHP_EOL;

Description des codes :

  • La fonction de cryptage utilise openssl_encrypt pour crypter les données et utilise base64_encode pour les convertir en une chaîne lisible.
  • La fonction de décryptage décode d'abord en base64, puis extrait le contenu IV et crypté, et enfin utilise openssl_decrypt pour décrypter.
  • openssl_cipher_iv_length renvoie la longueur IV de l'algorithme de chiffrement spécifié.

Utiliser un algorithme de chiffrement asymétrique

Les algorithmes de chiffrement asymétrique utilisent deux clés, une clé publique et une clé privée. La clé publique est utilisée pour le chiffrement et la clé privée est utilisée pour le déchiffrement. PHP prend en charge des algorithmes tels que RSA. L'exemple de code est le suivant :

 fonction chiffrer($data, $publicKey) {
    openssl_public_encrypt($data, $encrypted, $publicKey);
    return base64_encode($encrypted);
}

fonction décrypter ($encryptedData, $privateKey) {
    openssl_private_decrypt(base64_decode($encryptedData), $decrypted, $privateKey);
    renvoie $déchiffré ;
}

$publicKey = openssl_pkey_get_public('file://path/to/public_key.pem');
$privateKey = openssl_pkey_get_private('file://path/to/private_key.pem');

$données = 'données_sensibles';

$encryptedData = chiffrer($data, $publicKey);
echo 'Données cryptées : ' . $donnéescryptées . PHP_EOL;

$decryptedData = décrypter($encryptedData, $privateKey);
echo 'Données décryptées : ' . $donnéesdécryptées . PHP_EOL;

Description des codes :

  • La fonction de cryptage utilise openssl_public_encrypt pour crypter les données et base64_encode pour les convertir en chaîne.
  • La fonction decrypt restaure les données binaires via base64_decode, puis les déchiffre à l'aide d'openssl_private_decrypt.

Utiliser la fonction de hachage

La fonction de hachage mappe les données de n'importe quelle longueur en une valeur de hachage de longueur fixe et est souvent utilisée pour vérifier l'intégrité des données plutôt que pour le chiffrement et le déchiffrement. PHP utilise couramment des fonctions telles que MD5, SHA1 et SHA256. Exemple:

 $données = 'données_sensibles';

$hashedData = md5($données);
echo 'Données hachées : ' . $hashedData . PHP_EOL;

Description des codes :

  • La fonction md5 calcule la valeur de hachage MD5 des données données.

en conclusion

Cet article explique comment utiliser PHP pour implémenter le cryptage et le déchiffrement des données, y compris le cryptage symétrique, le cryptage asymétrique et les fonctions de hachage, et fournit un exemple de code complet. Grâce à ces méthodes, les développeurs peuvent protéger efficacement la sécurité des données sensibles pendant la transmission et le stockage.