Base64 kodlaşdırma işləri necədir

İnternet məlumat şosesi olsa, onda e-poçt yolu dar bir çuxurdur. Yalnız çox kiçik arabalar keçə bilər.

E-poçtun nəqliyyat sistemi düz ASCII mətn üçün nəzərdə tutulmuşdur. Digər dillərdə mətn göndərməyi və ya zahirən faylları yarıdan bir yük maşını almaq kimi.

Böyük Kamyon Ravine vasitəsilə necə gedər?

Sonra kiçik bir yarğan vasitəsilə böyük bir yük maşını necə göndərirsiniz? Bir ucunda parçaları götürmək, parçaları yarışın içərisinə daşımaq və digər ucundakı parçaları yenidən qurmaq lazımdır.

E-poçt vasitəsilə fayl əlavə göndərdiyinizdə eyni olur. İkili məlumatların kodlanması kimi tanınan bir prosesdə, problem olmadan E-poçtda nəql edilə bilən ASCII mətninə çevrilir. Alıcının sonunda, məlumatlar şifrələnir və orijinal fayl yenidən qurulur.

Düzgün ASCII mətn kimi təsadüfi məlumatların kodlaşdırılmasının bir üsulu Base64'dur. MIME standartında düz mətndən başqa məlumatları göndərmək üçün istifadə edilən üsullardan biridir.

Base64 qurtarmaq üçün

Base64 kodlaması, hər biri səkkiz bitdən ibarət olan üç baytdan ibarətdir və onları ASCII standartında dörd yazdırılabilir simvol kimi təqdim edir. Bu, əslində iki addımdır.

İlk addım üç baytı dörd ədədi altı bitə çevirməkdir. ASCII standartında hər bir xarakter yeddi bitdən ibarətdir. Base64 yalnız kodlanmış məlumatların çap və insan tərəfindən oxunaqlı olmasını təmin etmək üçün 6 bit (2 ^ 6 = 64 simvol uyğun) istifadə edir. ASCII-də mövcud olmayan xüsusi simvollardan heç biri istifadə edilmir.

64 simvol (bu səbəbdən Base64 adı) 10 rəqəm, 26 kiçik harf, 26 böyük harf və '+' və '/' dir.

Məsələn, üç bayt 155, 162 və 233, müvafiq (və qorxulu) bit axını 100110111010001011101001, bu da 6-bit dəyərlərə 38, 58, 11 və 41 uyğun gəlir.

Bu ədəd Base64 kodlama masasını istifadə edərək ikinci addımda ASCII simvoluna çevrilir. Məsələnin 6-bit dəyərləri ASCII ardıcıllığına çevrilir "m6Lp".

Bu iki addımlı proses kodlaşdırılan baytların bütün ardıcıllığına tətbiq olunur. Kodlanmış məlumatların düzgün çap olunmasını təmin etmək və hər hansı bir poçt serverinin xəttinin uzunluğu limitini keçməməsini təmin etmək üçün, satır uzunluğunu 76 simvoldan aşağı saxlamaq üçün yeni xətt simvolları daxil edilir. Yeni satır simvolları bütün digər məlumatlar kimi kodlanır.

Endgame həll

Şifrələmə prosesinin sonunda biz problem yarada bilərik. Baytdakı orijinal məlumatların ölçüsü üçdə birdən çox olarsa, hər şey yaxşı işləyir. Əgər belə deyilsə, biz bir və ya iki 8 bit baytla bitəcəyik. Müvafiq kodlaşdırma üçün, dəqiq olaraq üç bayta ehtiyacımız var.

Çözüm 3 baytlı qrup yaratmaq üçün '0' dəyəri ilə kifayət qədər bayt əlavə etməkdir. Bir əlavə məlumat baytımız varsa iki əlavə dəyər əlavə olunur, biri iki əlavə bayt üçün əlavə olunur.

Əlbəttə ki, bu süni arxada '0' kodlaşdırma cədvəlindən istifadə edərək şifrələnə bilməz. Onlar 65-ci simvolu ilə təmsil olunmalıdır.

Base64 padding xarakteri '=' dir. Təbii ki, yalnız kodlanmış məlumatların sonunda görünə bilər.

Base64 Kodlaşdırma Cədvəli

Qiymət Char Qiymət Char Qiymət Char Qiymət 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 n 55 3
8 Mən 24 Y 40 o 56 4
9 J 25 Z 41 s 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 / /