Encoding, Encryption & Hashing nədir?
Encoding
Encoding (Kodlaşdırma) məlumatları başqa bir formada təqdim etmək məqsədi daşıyır. Encodinglə kodlaşdırılmış məlumatları decoder etmək asandır. O zaman deyə bilərsinizki, bu nəyə lazımdır. Kodlaşdırma ilə şifrələməni qarışdırmayın. “Encoding kodlaşdırır. Məqsədi isə bir məlumatın bir necə system tərəfindən oxuna bilinməsidir” vəya belə izah etsək bəzi simvolları dəstəkləməyən systemlərdə həmin simvolları nə iləsə əvəz edir. Buna missal URL`ni gətirmək olar. Bir çox simvolları URL dəstəkləmədiyindən həmin simvolların yerinə % simvolunu qoyur. Buna missal bir çox programçılarında istifadə etdiyi UTF-8 kodlaşdırılmasınıda göstərmək olar.
Məlumatların sıxlaşdırılması zamanıda bu prosses baş verir. (Yuxarıda dırnaq içində yazılan cümləni birdaha oxu.)
Encoding sadəcə məlumatları başa düşülən formata çevirmək üsuludur. Bu, sənin məlumatlarını dostunun və ya başqa bir sistemin başa düşə biləcəyi formata çevirmək kimidir. Kodlaşdırma məlumatların uyğunluğunu və oxunmasını təmin edir, xüsusi bir şey gizlətmək məqsədi daşımır, sadəcə məlumatların başa düşülən və işlənən formata çevrilməsi üçün istifadə olunur.
Encryption
Encryption şifrələmədir. Məlumatların məxfiliyini qorumaq üçün onları şifrələyir. Daha asan dildə izah etsək, sənin bir gündəliyin var və sən onu başqası oxumasını istəmirsən o zaman onu şifrələyirsən “A” əvəzinə “4” , “Z” əvəzinə “3” , “İ” əvəzinə “1” yazırsan. Məsələn,
ZAHİR yazmaq istəyirsən amma başqası oxumasın deyə sən onu 34H1R olaraq şifrələyirsən. 34H1R bunu başqa biri oxuyan zaman heçnə anlamayacaq lakin sən rəqəmlərin yerinə hansı hərflərin olduğunu bilirsən və 34H1R bunun ZAHİR olduğunu anlayırsan.
Və ya dostuna bir sandıq göndərirsən və yolda sandığı açıb içindəkilərin nə olduğunu bilməklərini istəmirsən. Yalnız dostuna çatanda dostun açsın istəyirsən. Sandığı qıfıllayırsan və o kıfılın açarının birini öncədən dostuna verirsən. Sandıq qıfıllı olduğu üçün onu yolda aça bilmirlər amma dostuna çatanda o öz açarı ilə onu açır. 2 açaq olduğu üçün buna “Asimmetrik” şifrələmə deyilir.
Yuxarda hərifləri rəqəmlə dəyişdiyimiz misalda isə simmetrik şifrələmədən istifadə edilib.
Simmetrik şifrələməni biraz daha asan dildə izah etsək, təsəvvür edin bir ev var və o evdə siz dostunuz qalırsınız. Lakin açar 1 ədəd olduğu üçün siz onu bir yerdə gizlədirsiniz və hər dəfə gələndə ordan açarı götürüb qapını açırsınız. Yəni siz ikinizdə bir açardan istifadə edirsiniz.
Hashing
Hashing şifrələmə, məlumatları sabit bir uzunluqda və unikal dəyərə çevirmək prosesidir.
MD5 şifrələmədə məlumatların uzunluğundan aslı olmayaraq 32 simvollu bir şifrəyə çevrilir. İnsanın baraq izləri kimi isə unikaldır.
Biz MD5 ilə şifrələnmiş bir satyda parolumuzu yazdıqda MƏS: “12345678” o avtomatik olaraq hashing olaraq “25d55ad283aa400af464c76d713c07ad” bu tip şifrələnir və serverdədə Hashing`lənmiş halda olduğu üçün sizing parolunuzu tapmaq çətinləşir. Indi MD5 daha təhlükəsiz və güclü SHA-256 alqoritimindən istifadə edilri.
Hashing, məlumatları unikal və sabit uzunluqlu dəyərə çevirmə prosesidir. Bu proses məlumatların doğruluğunu və bütövlüyünü yoxlamaq, şifrələri təhlükəsiz saxlamaq kimi məqsədlər üçün istifadə olunur. Hash dəyəri məlumatın barmaq izi kimi işləyir və məlumat dəyişdiyi zaman hash dəyəri də dəyişir, bu da məlumatın dəyişdiyini göstərir.