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:
-
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"; ?> -
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.