Sobes.tech
Intern

Kas yra šifravimas?

sobes.tech AI

Atsakymas iš AI

Šifravimas yra procesas, kurio metu skaitoma informacija (atvira tekstas) paverčiama neskaitymu formatu (šifruotas tekstas) naudojant kriptografinį algoritmą ir raktą. Tikslas – užtikrinti duomenų konfidencialumą, kad tik įgalioti asmenys galėtų juos perskaityti naudodami atitinkamą raktą dešifravimui.

Yra du pagrindiniai šifravimo tipai:

  1. Simetrinis šifravimas: naudojamas tas pats raktas tiek šifravimui, tiek dešifravimui. Greitas, bet yra saugumo problema perduodant raktą. Pavyzdžiai: AES, DES.

    <?php
    // Pavyzdys simetrinio šifravimo (supaprastintas, tik demonstracijai)
    $key = 'raktas123';
    $plaintext = 'Slaptas pranešimas';
    
    // Paprasta šifravimo funkcija (ne naudoti gamyboje)
    function simple_encrypt($data, $key) {
        return base64_encode($data ^ $key); // XOR operacija
    }
    
    // Paprasta dešifravimo funkcija (ne naudoti gamyboje)
    function simple_decrypt($data, $key) {
        return base64_decode($data) ^ $key; // XOR operacija
    }
    
    $ciphertext = simple_encrypt($plaintext, $key);
    echo "Užšifruotas: " . $ciphertext . "\n";
    
    $decryptedtext = simple_decrypt($ciphertext, $key);
    echo "Dešifruotas: " . $decryptedtext . "\n";
    ?>
    
  2. Asimetrinis šifravimas (šifravimas su viešu raktu): naudojama pora raktų: viešas raktas šifravimui ir privatus (slaptas) raktas dešifravimui. Viešas raktas gali būti laisvai platinamas, o slaptas raktas laikomas paslaptyje. Greitis mažesnis nei simetrinio. Pavyzdžiai: RSA, ECC.

    <?php
    // Pavyzdys asimetrinio šifravimo (supaprastintas, tik demonstracijai)
    // Praktikoje naudojamos PHP funkcijos OpenSSL (openssl_public_encrypt, openssl_private_decrypt ir kt.)
    
    // Raktų generavimas (sudėtingas procesas)
    // $privateKey = ...
    // $publicKey = ...
    
    $plaintext = 'Kita slaptas pranešimas';
    
    // Šifravimas viešu raktu
    // $encrypted = openssl_public_encrypt($plaintext, $ciphertext, $publicKey);
    // echo "Šifruotas (asimetrinis): " . base64_encode($ciphertext) . "\n";
    
    // Dešifravimas su privačiu raktu
    // $decrypted = openssl_private_decrypt($ciphertext, $decryptedtext, $privateKey);
    // echo "Dešifruotas (asimetrinis): " . $decryptedtext . "\n";
    
    // Tikrame kode naudojamos OpenSSL funkcijos
    ?>
    

Šifravimas naudojamas duomenų apsaugai saugojimo (encryption at rest) ir perdavimo (encryption in transit) metu, pavyzdžiui, SSL/TLS protokoluose interneto svetainėse.