Base64

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

Base64 – rodzaj kodowania transportowego, zmodyfikowany 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. Istnieją więc dokładnie 64 możliwe wartości każdej takiej jednostki. Wszystkim tym jednostkom są przypisywane znaki na podstawie arbitralnie ustalonego przypisania (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 (pad), aby ten miał długość podzielną przez 4).

Dane zakodowane przy pomocy base64 w urządzeniu, które używa 8-bitowego słowa do reprezentacji znaków powiększają swój rozmiar o 33%.

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ą zostać zastąpione znakami - i _ (dywiz i podkreślnik). Dzięki temu można umieścić fragment takiego kodu w URL, co dla znaków plus i ukośnik jest niemożliwe (plus jest zamieniany na spację, a ukośnik najczęściej oddziela fragmenty ścieżki w URL)

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]