Sobes.tech
Intern

Shifrlash nima?

sobes.tech AI

AIdan javob

Shifrlash — bu o'qilishi mumkin bo'lgan ma'lumotlarni (ochiq matn) kriptografik algoritm va kalit yordamida o'qilmaydigan formatga (shifrlangan matn) aylantirish jarayoni. Maqsad — ma'lumotlarning maxfiyligini ta'minlash, shunda faqat ruxsat etilgan shaxslar ularni o'qishi mumkin, mos keladigan kalit yordamida shifrlash va ochish.

Shifrlashning ikki asosiy turi mavjud:

  1. Simetriya shifrlash: Bir xil kalit shifrlash va ochish uchun ishlatiladi. Tezligi yuqori, ammo kalitni xavfsiz uzatish muammo bo'lishi mumkin. Misollar: AES, DES.

    <?php
    // Simmetrik shifrlashning oddiy misoli (faqat tushuntirish uchun)
    $key = 'kalit123';
    $plaintext = 'Maxfiy xabar';
    
    // Oddiy shifrlash funksiyasini faraz qilamiz (amalga oshirmang)
    function simple_encrypt($data, $key) {
        return base64_encode($data ^ $key); // XOR operatsiyasi misoli
    }
    
    // Oddiy ochish funksiyasini faraz qilamiz (amalga oshirmang)
    function simple_decrypt($data, $key) {
        return base64_decode($data) ^ $key; // XOR operatsiyasi misoli
    }
    
    $ciphertext = simple_encrypt($plaintext, $key);
    echo "Shifrlangan: " . $ciphertext . "\n";
    
    $decryptedtext = simple_decrypt($ciphertext, $key);
    echo "Ochildi: " . $decryptedtext . "\n";
    ?>
    
  2. Asimmetrik shifrlash (ochiq kalit bilan shifrlash): Bir juft kalit ishlatiladi: ochiq kalit shifrlash uchun, maxfiy kalit esa ochish uchun. Ochiq kalit erkin tarqatilishi mumkin, maxfiy kalit esa sir saqlanadi. Tezligi simmetrik shifrlashdan pastroq. Misollar: RSA, ECC.

    <?php
    // Asimmetrik shifrlashning oddiy misoli (RSA konseptini tushuntirish uchun)
    // Amalda PHP uchun OpenSSL funksiyalaridan foydalaniladi (openssl_public_encrypt, openssl_private_decrypt va boshqalar)
    
    // Kalitlar generatsiyasi (murakkab jarayon)
    // $privateKey = ...
    // $publicKey = ...
    
    $plaintext = 'Boshqa maxfiy xabar';
    
    // Ochiq kalit bilan shifrlash
    // $encrypted = openssl_public_encrypt($plaintext, $ciphertext, $publicKey);
    // echo "Asimmetrik shifrlash: " . base64_encode($ciphertext) . "\n";
    
    // Maxfiy kalit bilan ochish
    // $decrypted = openssl_private_decrypt($ciphertext, $decryptedtext, $privateKey);
    // echo "Ochildi (asym): " . $decryptedtext . "\n";
    
    // Haqiqiy kodda OpenSSL funksiyalari ishlatiladi
    ?>
    

Shifrlash ma'lumotlarni saqlash (encryption at rest) va uzatish (encryption in transit) uchun qo'llaniladi, masalan, SSL/TLS protokollarida veb-saytlar uchun.