Ki jan Base64 kodaj ap travay

Si entènèt la se gran wout la enfòmasyon, Lè sa a, chemen an pou imèl se yon ravin etwat. Se sèlman trè ti bin ka pase.

Se sistèm nan transpò nan imèl ki fèt pou tèks plenn ASCII sèlman. Eseye voye tèks nan lòt lang oswa dosye abitrè se tankou ap resevwa yon kamyon nan ravin lan.

Kouman kamyon an gwo ale Atravè ravin lan?

Lè sa a, ki jan ou voye yon kamyon gwo nan yon ti ravin? Ou dwe pran li nan moso nan fen a youn, transpòte moso yo nan ravin lan, ak rebati kamyon an soti nan moso yo sou fen a lòt.

Menm bagay la tou k ap pase lè ou voye yon atachman dosye via imel . Nan yon pwosesis ke yo rekonèt kòm kodaj done yo binè transfòme nan tèks ASCII, ki ka transpòte nan imel san yo pa pwoblèm. Sou fen moun k ap resevwa a, done yo dekode ak dosye orijinal la rebati.

Yon metòd kodaj done abitrè kòm tèks plenn ASCII se Base64. Li se youn nan teknik yo itilize nan estanda MIME yo voye done lòt pase tèks plenn .

Base64 sekou an

Base64 kodaj pran twa bytes, chak ki gen uit Bits, epi li reprezante yo kòm kat karaktè printable nan estanda ASCII a. Li fè sa nan esansyèlman de etap.

Premye etap la se konvèti twa bytes nan kat nimewo nan sis Bits. Chak karaktè nan estanda ASCII a konsiste de sèt Bits. Base64 sèvi sèlman 6 Bits (ki koresponn ak 2 ^ 6 = 64 karaktè) pou asire ke kode done se printable ak imedyatman lizib. Okenn nan karaktè espesyal ki disponib nan ASCII yo te itilize.

Karaktè 64 yo (pakonsekan Base64 la) se 10 chif, 26 karaktè miniskil, karaktè majuskul 26 kòm byen ke '+' ak '/'.

Si pou egzanp, twa bytes yo se 155, 162 ak 233, kouran ti jan ki koresponn (ak pè) se 100110111010001011101001, ki an vire koresponn ak valè yo 6-bit 38, 58, 11 ak 41.

Nimewo sa yo konvèti nan karaktè ASCII nan dezyèm etap la lè l sèvi avèk tab la kodaj Base64. Valè yo 6-ti jan nan egzanp nou an tradwi nan sekans lan ASCII "m6Lp".

Pwosesis de etap sa a aplike nan sekans an antye nan bytes ki kode. Pou asire ke done yo kode yo ka byen enprime epi yo pa depase limit liy sèvè liy lapòs la, karaktè liylin yo eleman kenbe longè liy anba a 76 karaktè. Karaktè yo nouvo liy yo kode tankou tout lòt done.

Rezoud Endgame la

Nan fen pwosesis la kodaj, nou ta ka kouri antre nan yon pwoblèm. Si gwosè a nan done orijinal yo nan bytes se yon miltip nan twa, tout bagay ap travay amann. Si se pa, nou ta ka fini ak youn oubyen de bytes 8-bit. Pou bon kodaj, nou bezwen egzakteman twa bytes, sepandan.

Solisyon an se ajoute yon bytes ase ak yon valè de '0' pou kreye yon gwoup 3-byte. De valè sa yo apendere si nou gen yon sèl siplemantè byte nan done, se yon sèl ki te angaje pou de bytes siplemantè.

Natirèlman, sa yo atifisyèl fin '0' pa ka kode lè l sèvi avèk tab la kodaj anba a. Yo dwe reprezante yon karaktè 65th.

Koulè padding Base64 la se '='. Natirèlman, li ka sèlman tout tan tout tan parèt nan fen done kode.

Base64 kodaj tab

Valè Char Valè Char Valè Char Valè Char
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 mwen 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 Mwen 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 /