Base64

Base64 – rodzaj kodowania transportowego, zmodyfikowanego pod kątem zwiększenia przenośności kodowania uuencode. Kodowanie to zostało zdefiniowane w dokumencie RFC 4648 ↓.
Kodowanie
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 liczba 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 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
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
Base64 jest wykorzystywane m.in. do:
- przesyłania załączników binarnych w poczcie elektronicznej,
- pamiętania ViewState w stronach WWW tworzonych przy użyciu technologii ASP.NET,
- kodowania haseł wysyłanych w protokole SMTP podczas uwierzytelniania metodami PLAIN i LOGIN.
- kodowania obrazów do zagnieżdżania wewnątrz HTML-a wg schematu URI data:
Zobacz też
Linki zewnętrzne
- Base64 Decode
- S. Josefsson, The Base16, Base32, and Base64 Data Encodings, RFC 4648, IETF, październik 2006, DOI: 10.17487/RFC4648, ISSN 2070-1721, OCLC 943595667 (ang.).
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.