Şifrləmə nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Şifrələmə, oxuna bilən məlumatların (açıq mətn) kriptografik alqoritm və açar vasitəsilə oxunmaz formata (şifrli mətn) çevrilməsi prosesidir. Məqsəd, məlumatların məxfiliyini təmin etməkdir ki, yalnız icazəli şəxslər onları oxuya bilsinlər, uyğun açardan istifadə etməklə deşifrə etsinlər.
İki əsas şifrələmə növü mövcuddur:
-
Simmetrik şifrələmə: Eyni açar həm şifrələmə, həm də deşifrə üçün istifadə olunur. Sürət yüksəkdir, lakin açarın təhlükəsiz ötürülməsi problemi yaranır. Nümunələr: AES, DES.
<?php // Sadə simmetrik şifrələmə nümunəsi (yalnız konsepti göstərmək üçün) $key = 'açar123'; $plaintext = 'Gizli mesaj'; // Sadə şifrələmə funksiyası qəbul edək (istehsalda istifadə etməyin) function simple_encrypt($data, $key) { return base64_encode($data ^ $key); // XOR əməliyyatı nümunəsi } // Sadə deşifrə funksiyası qəbul edək (istehsalda istifadə etməyin) function simple_decrypt($data, $key) { return base64_decode($data) ^ $key; // XOR əməliyyatı nümunəsi } $ciphertext = simple_encrypt($plaintext, $key); echo "Şifrələnmiş: " . $ciphertext . "\n"; $decryptedtext = simple_decrypt($ciphertext, $key); echo "Deşifrə olunmuş: " . $decryptedtext . "\n"; ?> -
Asimmetrik şifrələmə (açıq açar ilə şifrələmə): Bir cüt açar istifadə olunur: açıq açar şifrələmə üçün, xüsusi açar isə deşifrə üçün. Açıq açar sərbəst paylaşıla bilər, xüsusi açar isə gizli saxlanılır. Sürət simmetrik şifrələmədən aşağıdır. Nümunələr: RSA, ECC.
<?php // Sadə asimmetrik şifrələmə nümunəsi (RSA konseptini göstərmək üçün) // Əslində, PHP üçün OpenSSL funksiyalarından istifadə olunur (openssl_public_encrypt, openssl_private_decrypt və s.) // Açarların yaradılması (mürəkkəb proses) // $privateKey = ... // $publicKey = ... $plaintext = 'Başqa bir gizli mesaj'; // Açıq açar ilə şifrələmə // $encrypted = openssl_public_encrypt($plaintext, $ciphertext, $publicKey); // echo "Asimmetrik şifrələmə: " . base64_encode($ciphertext) . "\n"; // Xüsusi açar ilə deşifrə // $decrypted = openssl_private_decrypt($ciphertext, $decryptedtext, $privateKey); // echo "Deşifrə olunmuş (asym): " . $decryptedtext . "\n"; // Əsl kodda OpenSSL funksiyaları istifadə olunacaq ?>
Şifrələmə, məlumatların saxlanması (encryption at rest) və ötürülməsi (encryption in transit) zamanı qorunması üçün tətbiq edilir, məsələn, SSL/TLS protokollarında veb saytlar üçün.