Base64

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania

Base64 – rodzaj kodowania transportowego, zmodyfikowanego pod kątem zwiększenia przenośności wersja kodowania uuencode. Kodowanie to zostało zdefiniowane w dokumencie RFC 4648 ↓.

Kodowanie[edytuj | edytuj kod]

Base64 służy do kodowania ciągu bajtów za pomocą ciągu znaków. Kodowanie to przypisuje 64 wybranym znakom (patrz tabelka niżej) wartości od 0 do 63. Ciąg bajtów poddawany kodowaniu dzielony jest na grupy po 3 bajty. Ponieważ bajt ma 8 bitów, grupa 3 bajtów składa się z 24 bitów. Każdą taką grupę dzieli się następnie na 4 jednostki 6-bitowe, więc istnieją dokładnie 64 możliwe wartości każdej z tych jednostek. Jednostkom przypisywane są odpowiednie znaki na podstawie arbitralnie ustalonego kodowania (patrz tabela poniżej). Jeśli rozmiar wejściowego ciągu bajtów nie jest wielokrotnością liczby 3, to stosowane jest dopełnianie – na końcu wynikowego ciągu dodawana jest taka ilość symboli dopełnienia (ang. pad), aby ten miał długość podzielną przez 4.

Wartość Znak Wartość Znak Wartość Znak
0 A 22 W 44 s
1 B 23 X 45 t
2 C 24 Y 46 u
3 D 25 Z 47 v
4 E 26 a 48 w
5 F 27 b 49 x
6 G 28 c 50 y
7 H 29 d 51 z
8 I 30 e 52 0
9 J 31 f 53 1
10 K 32 g 54 2
11 L 33 h 55 3
12 M 34 i 56 4
13 N 35 j 57 5
14 O 36 k 58 6
15 P 37 l 59 7
16 Q 38 m 60 8
17 R 39 n 61 9
18 S 40 o 62 +
19 T 41 p 63 /
20 U 42 q
21 V 43 r pad =

Ostatnie dwa znaki nie są alfanumeryczne. W niektórych niestandardowych odmianach kodowania base64 mogą one zostać zastąpione znakami - i _ (dywiz i podkreślnik). Dzięki temu można umieścić fragment takiego kodu np. w adresie URL, co jednak dla znaków + i / jest niemożliwe, gdyż plus jest zamieniany na spację, a ukośnik najczęściej oddziela fragmenty ścieżki w URL.

W urządzeniu, które używa 8-bitowego słowa do reprezentacji znaków dane zakodowane przy pomocy base64 powiększają swój rozmiar o 33% – dlatego np. pliki binarne umieszczone w wiadomościach e-mail zwiększają swoją objętość o ⅓.

Przykład[edytuj | edytuj kod]

Zdanie (kodowane tutaj w ASCII – stąd brak polskich znaków diakrytycznych)

Idealy sa jak gwiazdy - nie mozna ich osiagnac, ale mozna sie nimi kierowac.

po zakodowaniu base64 wygląda następująco (znak powrotu karetki "CR" i nowej linii "LF" na końcu zdania również zostały zakodowane na potrzeby tego przykładu):

SWRlYWx5IHNhIGphayBnd2lhemR5IC0gbmllIG1vem5hIGljaCBvc2lhZ25hYywgYWxlIG1v
em5hIHNpZSBuaW1pIGtpZXJvd2FjLg0K

Zastosowania[edytuj | edytuj kod]

Base64 jest wykorzystywane m.in. do:

  1. przesyłania załączników binarnych w poczcie elektronicznej,
  2. pamiętania ViewState w stronach WWW tworzonych przy użyciu technologii ASP.NET,
  3. kodowania haseł wysyłanych w protokole SMTP podczas uwierzytelniania metodami PLAIN i LOGIN.

Zobacz też[edytuj | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]