Sobes.tech
Intern

Ce este criptarea?

sobes.tech AI

Răspuns de la AI

Criptarea este procesul de transformare a informațiilor lizibile (text clar) într-un format ilizibil (text criptat) folosind un algoritm criptografic și o cheie. Scopul este de a asigura confidențialitatea datelor, astfel încât doar persoanele autorizate să le poată citi, folosind cheia corespunzătoare pentru decriptare.

Există două tipuri principale de criptare:

  1. Criptare simetrică: Se folosește aceeași cheie atât pentru criptare, cât și pentru decriptare. Viteza este mare, dar problema constă în transmiterea sigură a cheii. Exemple: AES, DES.

    <?php
    // Exemplu de criptare simetrică (simplificat, doar pentru demonstrație)
    $key = 'cheie123';
    $plaintext = 'Mesaj secret';
    
    // Presupunem o funcție simplă de criptare (nu folosiți în producție)
    function simple_encrypt($data, $key) {
        return base64_encode($data ^ $key); // Operație XOR de exemplu
    }
    
    // Presupunem o funcție simplă de decriptare (nu folosiți în producție)
    function simple_decrypt($data, $key) {
        return base64_decode($data) ^ $key; // Operație XOR de exemplu
    }
    
    $ciphertext = simple_encrypt($plaintext, $key);
    echo "Criptat: " . $ciphertext . "\n";
    
    $decryptedtext = simple_decrypt($ciphertext, $key);
    echo "Decriptat: " . $decryptedtext . "\n";
    ?>
    
  2. Criptare asimetrică (cu cheie publică): Se folosește un cuplu de chei: cheie publică pentru criptare și cheie privată pentru decriptare. Cheia publică poate fi distribuită liber, iar cheia privată trebuie păstrată secretă. Viteza este mai mică decât în cazul criptării simetrice. Exemple: RSA, ECC.

    <?php
    // Exemplu de criptare asimetrică (simplificat, pentru demonstrație RSA)
    // În practică, se folosesc funcții PHP pentru OpenSSL (openssl_public_encrypt, openssl_private_decrypt etc.)
    
    // Generarea cheilor (proces complex)
    // $privateKey = ...
    // $publicKey = ...
    
    $plaintext = 'Alt mesaj secret';
    
    // Criptare cu cheia publică
    // $encrypted = openssl_public_encrypt($plaintext, $ciphertext, $publicKey);
    // echo "Criptare asimetrică: " . base64_encode($ciphertext) . "\n";
    
    // Decriptare cu cheia privată
    // $decrypted = openssl_private_decrypt($ciphertext, $decryptedtext, $privateKey);
    // echo "Decriptat (asimetric): " . $decryptedtext . "\n";
    
    // În codul real, se folosesc funcții OpenSSL
    ?>
    

Criptarea este utilizată pentru protejarea datelor în timpul stocării (encryption at rest) și în timpul transmiterii (encryption in transit), de exemplu, în protocoalele SSL/TLS ale site-urilor web.