Maison >développement back-end >tutoriel php >Technologie de cryptage et de décryptage des données pour PHP et CGI : comment protéger les informations des utilisateurs

Technologie de cryptage et de décryptage des données pour PHP et CGI : comment protéger les informations des utilisateurs

王林
王林original
2023-07-21 09:24:17759parcourir

Technologie de cryptage et de décryptage des données PHP et CGI : comment protéger les informations des utilisateurs

Avec le développement d'Internet, de plus en plus d'utilisateurs effectuent diverses opérations en ligne, notamment des achats, des virements bancaires, des réseaux sociaux, etc. Ces opérations impliquent une grande quantité d'informations sur les utilisateurs, telles que des numéros d'identification personnels, des numéros de carte bancaire, des mots de passe, etc. Il est particulièrement important de protéger la sécurité de ces informations sur les utilisateurs. Lors du développement de sites Web et d'applications, les développeurs doivent adopter des technologies de cryptage et de décryptage de données appropriées pour protéger la sécurité des informations des utilisateurs.

Afin de mettre en œuvre le cryptage et le décryptage des données, les développeurs peuvent utiliser PHP et CGI (Common Gateway Interface). Ce qui suit présentera comment utiliser PHP et CGI pour implémenter le cryptage et le déchiffrement des données, et fournira des exemples de code correspondants.

1. Utilisez PHP pour implémenter le cryptage et le décryptage des données

  1. Utilisez l'extension openssl de PHP pour crypter et déchiffrer les données. L'exemple de code est le suivant :
<?php
function encrypt($data, $key) {
    $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);
}

function decrypt($data, $key) {
    $data = base64_decode($data);
    $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);
}

$data = 'Hello, World!';
$key = 'mysecretkey';

$encryptedData = encrypt($data, $key);
echo 'Encrypted Data: ' . $encryptedData . '<br>';

$decryptedData = decrypt($encryptedData, $key);
echo 'Decrypted Data: ' . $decryptedData;
?>

Dans l'exemple de code ci-dessus, l'algorithme de cryptage AES-256-CBC. est utilisé Crypter et déchiffrer les données. Pendant le processus de chiffrement, un vecteur initial aléatoire (iv) est d'abord généré, puis la fonction openssl_encrypt est utilisée pour chiffrer, et enfin le vecteur initial et le résultat du chiffrement sont codés en base64 et renvoyés. Pendant le processus de décryptage, les données cryptées sont d'abord décodées en base64, puis le vecteur initial et les données cryptées sont transmises à la fonction openssl_decrypt pour le décryptage.

  1. Utilisez la fonction hash_hmac de PHP pour la signature des données. L'exemple de code est le suivant :
<?php
function signData($data, $key) {
    return hash_hmac('sha256', $data, $key);
}

function verifyData($data, $signature, $key) {
    $generatedSignature = hash_hmac('sha256', $data, $key);
    return hash_equals($generatedSignature, $signature);
}

$data = 'Hello, World!';
$key = 'mysecretkey';

$signature = signData($data, $key);
echo 'Signature: ' . $signature . '<br>';

$isValid = verifyData($data, $signature, $key);
echo 'Is Valid: ' . ($isValid ? 'True' : 'False');
?>

Dans l'exemple de code ci-dessus, l'algorithme HMAC-SHA256 est utilisé pour la signature des données. Pendant le processus de signature, la fonction hash_hmac est utilisée pour calculer les données et la clé pour obtenir la signature. Pendant le processus de vérification, la signature est recalculée en fonction des données d'entrée, de la signature et de la clé, et la fonction hash_equals est utilisée à des fins de comparaison pour déterminer si la signature est valide.

2. Utilisez CGI pour implémenter le cryptage et le décryptage des données

En CGI, le cryptage et le décryptage des données peuvent être réalisés en appelant un programme écrit en C ou C++. Voici un exemple simple implémenté en langage C :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char* encrypt(char* data, char* key) {
    // Encryption logic here
    return encryptedData;
}

char* decrypt(char* data, char* key) {
    // Decryption logic here
    return decryptedData;
}

int main() {
    char* data = "Hello, World!";
    char* key = "mysecretkey";

    char* encryptedData = encrypt(data, key);
    printf("Encrypted Data: %s
", encryptedData);

    char* decryptedData = decrypt(encryptedData, key);
    printf("Decrypted Data: %s
", decryptedData);

    return 0;
}

Dans l'exemple de code ci-dessus, les fonctions de cryptage et de déchiffrement implémentées en langage C sont utilisées. Des logiques spécifiques de chiffrement et de déchiffrement peuvent être mises en œuvre selon les besoins.

En résumé, grâce à l'extension openssl de PHP et aux programmes CGI appelant C, les développeurs peuvent implémenter le cryptage et le déchiffrement des données, protégeant ainsi la sécurité des informations des utilisateurs. Dans le développement réel, il est nécessaire de sélectionner des algorithmes de chiffrement et des solutions de gestion de clés appropriés en fonction des besoins spécifiques pour garantir la confidentialité et l'intégrité des informations des utilisateurs afin d'améliorer l'expérience et la confiance des utilisateurs.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn