Base64 kodlaşdırması ikili verilənləri 6 bitlik simvol təqdimatına çevirməklə ikili verilənləri ASCII sətir formatına çevirmək prosesidir. Base64 kodlaşdırma metodu şəkillər və ya video kimi ikili məlumatlar düz mətn (ASCII) formatında məlumat ötürmək üçün nəzərdə tutulmuş sistemlər üzərindən ötürüldükdə istifadə olunur.
Niyə Base64 Kodlaması İstifadə olunur?
Base64 kodlaşdırmasına ehtiyac medianın ikili formatda mətn əsaslı sistemlərə ötürülməsi zamanı yaranan problemlərdən irəli gəlir.
Mətn əsaslı sistemlər (məsələn, e-poçt) ikili verilənləri xüsusi əmr simvolları da daxil olmaqla geniş simvol diapazonu kimi şərh etdiyindən, ötürücü mediaya ötürülən ikili məlumatların çoxu həmin sistemlər tərəfindən yanlış şərh edilir və bu sistemlərdə itirilir və ya korlanır. ötürmə prosesi.
Bu cür ikili məlumatı bu cür ötürmə problemlərindən qaçınmaq üçün kodlaşdırmağın üsullarından biri onu Base64 kodlu formatda düz ASCII mətn kimi göndərməkdir. Bu, düz mətndən başqa məlumat göndərmək üçün MIME standartının tətbiq etdiyi üsullardan biridir.
PHP və Javascript kimi bir çox proqramlaşdırma dillərinə Base64 kodlaşdırması ilə ötürülən məlumatları şərh etmək üçün Base64 kodlaşdırma və deşifrə funksiyaları daxildir.
Base64 Kodlaşdırma Məntiqi
Base64 kodlaması ikili verilənləri 3 tam baytlıq 6 bitlik seqmentlərə ayırır və onları ASCII standartında çap edilə bilən simvollar kimi təmsil edir. Bunu iki addımda edir.
İlk addım ikili sətri 6 bitlik bloklara bölməkdir. Base64 kodlaşdırılmış məlumatların çap oluna biləcəyini və insanların oxuna biləcəyini təmin etmək üçün yalnız 6 bitdən (2^6=64 simvola uyğun gəlir) istifadə edir. ASCII-də mövcud olan xüsusi simvollardan heç biri istifadə edilmir.
64 simvol (buna görə də Base64 adı) 10 rəqəm, 26 kiçik hərf, 26 böyük hərf, həmçinin Artı işarəsi (+) və İrəli Slash (/) işarəsidir. Bərabər işarəsi (=) olan pad kimi tanınan 65-ci simvol da var. Bu simvol ikili məlumatın son seqmentində tam 6 bit olmadıqda istifadə olunur.
Base64 Kodlaşdırma Nümunəsi
Məsələn, üç ASCII rəqəmi 155, 162 və 233 götürün. Bu üç ədəd 100110111010001011101001 ikili axını təşkil edir. Şəkil kimi ikili fayl on və ya yüz minlərlə ikili axın ehtiva edir. və birlər.
Base64 kodlayıcı ikili axını altı simvoldan ibarət qruplara bölməklə başlayır: 100110 111010 001011 101001. Bu qruplaşmaların hər biri 38, 58, 11 və 41 rəqəmlərinə çevrilir.
Altı simvollu ikili axın binar ardıcıllıqda 1 ilə təmsil olunan hər bir dəyəri öz mövqe kvadratı ilə kvadratlaşdırmaqla binar (və ya əsas-2) arasında onluq (əsas-10) simvollara çevrilir. Sağdan və sola doğru hərəkət edərək və sıfırdan başlayaraq, binar axındakı dəyərlər 2^0, sonra 2^1, sonra 2^2, sonra 2^3, sonra 2^4, sonra 2^5-i təmsil edir.
Buna baxmağın başqa yolu var. Soldan başlayaraq hər mövqe 1, 2, 4, 8, 16 və 32-yə bərabərdir. Əgər ikilik ədədin yuvasında 1 varsa, siz həmin dəyəri əlavə edirsiniz; onun yuvasında 0 varsa, siz yoxdur. 100110 ikili sətri 38 onluq rəqəminə çevrilir: 02^01 + 12^1 + 12^2 + 02^3 + 02^4 + 12^5=0+2 +4+0+0+32.
Base64 kodlaşdırması bu ikili sətri götürür və onu 38, 58, 11 və 41-lik 6 bitlik dəyərlərə bölür.
Nəhayət, bu nömrələr Base64 kodlaşdırma cədvəlindən istifadə edərək ASCII simvollarına çevrilir. Bu nümunənin 6 bitlik dəyərləri m6Lp ASCII ardıcıllığına çevrilir.
Base64 çevirmə cədvəlindən istifadə:
- 38 - m
- 58 - 6
- 11 L
- 41 p
Bu iki addımlı proses kodlanmış bütün ikili sətirə tətbiq edilir.
Kodlanmış məlumatların düzgün çap edilməsini və heç bir poçt serverinin sətir uzunluğu limitini keçməməsini təmin etmək üçün sətir uzunluqlarını 76 simvoldan aşağı saxlamaq üçün yeni sətir simvolları daxil edilir. Yeni sətir simvolları bütün digər məlumatlar kimi kodlaşdırılıb.
Base64 kodlaşdırmasının bütün məqsədi, 3 baytlıq ikili seqmentləri qorumaq üçün doldurma əlavə etməkdən Base64 cədvəlindən istifadə edərək binarın mətnə çevrilməsinə qədər, ötürülən ikili məlumatın bütövlüyünü qorumaqdır.
Base64 Kodlaşdırma Cədvəli
Aşağıdakı cədvəl Base64 kodlaşdırmasında istifadə olunan bütün 64 simvolu tərcümə edir.
Base64 Kodlaşdırma Cədvəli | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Dəyər | Char | Dəyər | Char | Dəyər | Char | Dəyər | Char | |||
0 | A | 16 | Q | 32 | g | 48 | w | |||
1 | B | 17 | R | 33 | h | 49 | x | |||
2 | C | 18 | S | 34 | i | 50 | y | |||
3 | D | 19 | T | 35 | j | 51 | z | |||
4 | E | 20 | U | 36 | k | 52 | 0 | |||
5 | F | 21 | V | 37 | l | 53 | 1 | |||
6 | G | 22 | W | 38 | m | 54 | 2 | |||
7 | H | 23 | X | 39 | 55 | 3 | ||||
8 | I | 24 | Y | 40 | o | 56 | 4 | |||
9 | J | 25 | Z | 41 | p | 57 | 5 | |||
10 | K | 26 | a | 42 | q | 58 | 6 | |||
11 | L | 27 | b | 43 | r | 59 | 7 | |||
12 | M | 28 | c | 44 | s | 60 | 8 | |||
13 | N | 29 | d | 45 | t | 61 | 9 | |||
14 | O | 30 | e | 46 | u | 62 | + | |||
15 | P | 31 | f | 47 | v | 63 | / |
Son Oyunun Həlli
Kodlaşdırma prosesinin sonunda problem yarana bilər. Baytdakı orijinal məlumatın ölçüsü üçə bərabərdirsə, hər şey yaxşı işləyir. Əgər belə deyilsə, boş baytlar ola bilər. Düzgün kodlaşdırma üçün tam olaraq 3 bayt ikili data tələb olunur.
Həll yolu 3 baytlıq qrup yaratmaq üçün 0 dəyəri ilə kifayət qədər bayt əlavə etməkdir. Məlumata əlavə bir bayt data lazımdırsa, iki belə dəyər əlavə edilir, biri iki əlavə bayta əlavə edilir.
Əlbəttə, bu süni arxada gələn '0-ları aşağıdakı kodlaşdırma cədvəlindən istifadə etməklə kodlaşdırmaq olmaz. Onlar 65-ci simvolla təmsil edilməlidir. Base64 doldurma simvolu Bərabər işarəsidir (=) və kodlaşdırılmış məlumatın sonunda yerləşdirilir.