Yuav ua li cas Base64 Encoding Works

Yog hais tias hauv internet yog txoj kev loj, ces txoj kev rau email yog ib qho chaw nqaim. Tsuas yog cov tsheb me me xwb thiaj li dhau tau.

Lub kaw lus thauj ntawm email yog tsim los rau cov ntawv nyeem ASCII nkaus xwb. Sim xa cov ntawv nyeem ua lwm hom lus lossis cov ntaub ntawv uas tsis yoojyim yog zoo li tau txais ib lub tsheb los ntawm cov kwj deg.

Lub Tsheb Loj Loj Hloov Los Ntawm Lub Ravine Li Cas?

Ces ua li cas koj xa ib lub tsheb loj loj los ntawm lub me kooj me? Koj yuav tsum coj nws mus rau ib qho ntawm ib kawg, thauj cov khoom los ntawm cov kwj deg, thiab rov tsim dua lub tsheb ntawm lwm daim.

Tib yam li thaum koj xa cov ntaub ntawv txuas ntawm email . Nyob rau hauv tus txheej txheem hu ua encoding binary cov ntaub ntawv yog transformed rau ASCII ntawv, uas tau raug thauj hauv email tsis muaj teeb meem. Ntawm tus neeg txais kev pab xaus, cov ntaub ntawv raug cim tseg thiab cov ntaub ntawv tseem rov qab tsim kho.

Ib txoj kev ntawm encoding arbitrary cov ntaub ntawv raws li cov lus ASCII dawb yog Base64. Nws yog ib qho ntawm cov tswv yim ua haujlwm los ntawm tus txheej txheem MIME los xa cov ntaub ntawv uas tsis yog cov ntawv nyeem .

Base64 rau Kev Cawm Siav

Base64 encoding yuav siv peb bytes, txhua yam muaj yim khoom, thiab sawv cev rau lawv ua plaub hom ntawv sau hauv ASCII tus qauv. Nws ua li ntawd hauv ob qho tseem ceeb.

Thawj kauj ruam yog hloov peb bytes mus rau plaub tus lej ntawm cov khoom rau. Txhua tus ua cim hauv ASCII tus qauv muaj xya khoom. Base64 tsuas siv 6 khoom (sib thooj rau 2 ^ 6 = 64 cim) los xyuas kom cov ntaub ntawv tau muab luam tawm thiab nyeem tau cov neeg nyeem. Tsis muaj cov cim tshwj xeeb muaj nyob rau hauv ASCII siv.

Qhov 64 cim (li no lub npe Base64) yog 10 tus lej, 26 cim rau cov tsiaj ntawv, 26 cov cim loj thiab raws li '+' thiab '/'.

Yog tias piv txwv, peb lub bytes yog 155, 162 thiab 233, qhov sib txheeb (thiab ntshai) me ntsis yog 100110111010001011101001, uas tig raws li 6-ntsis qhov tseem ceeb 38, 58, 11 thiab 41.

Cov lej no hloov mus rau ASCII cim nyob rau hauv ob kauj ruam uas siv cov Base64 encoding table. Qhov 6-ntsis qhov tseem ceeb ntawm peb tus qauv txhais mus rau ASCII sib lawv liag "m6Lp".

Cov txheej txheem ob kauj ruam yog siv rau txhua theem ntawm bytes uas yog encoded. Los xyuas kom cov ntaub ntawv sau tau zoo tuaj yeem muab luam tawm thiab tsis pub tshaj txhua tus neeg xa ntawv cov kab kev xa tawm, cov cim tshiab yuav muab tso rau kab ntev hauv qab 76 cim. Cov cim tshiab yog encoded zoo li tag nrho lwm cov ntaub ntawv.

Kev daws qhov Endgame

Thaum kawg ntawm qhov txheej txheem ntawm kev sau ntawv, peb yuav khiav mus rau qhov teeb meem. Yog hais tias qhov luaj li cas ntawm cov ntaub ntawv tseem ceeb hauv cov neeg bytes yog ntau yam ntawm peb, txhua yam ua haujlwm zoo. Yog tias tsis yog, peb yuav xaus nrog ib los yog ob tug 8-ntsis bytes. Rau kev zoo encoding, peb xav tau raws nraim peb bytes, txawm li ntawd los.

Cov tshuaj no yog los append txaus txaus nrog '0' los ua ib pawg 3-byte. Ob lub nrig xws li tseem ceeb yog hais tias peb muaj ib qho ntxiv byte ntawm cov ntaub ntawv, ib qho yog ntxiv rau ob zaug ntxiv bytes.

Tau kawg, cov khoom cua no txoj kev '0' '' '' 'tsis tau encoded siv encoding cov lus hauv qab no. Lawv yuav tsum raug sawv cev los ntawm 65 xyoos.

The Base64 padding cim yog '='. Lawm, nws tsuas yog tshwm sim thaum kawg ntawm cov ntaub ntawv encoded.

Base64 Encoding Table

Tus nqi Char Tus nqi Char Tus nqi Char Tus nqi Char
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 kuv 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 Kuv 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 Tshaj