Base64
Z Wikipedii
Base64 – rodzaj kodowania transportowego, zmodyfikowana pod kątem zwiększenia przenośności wersja kodowania uuencode. Kodowanie to zostało zdefiniowane w dokumentach RFC 1421 i RFC 2045.
Spis treści |
[edytuj] Kodowanie
Base64 służy do kodowania ciągu bajtów przy pomocy 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 podanego niżej (patrz tabelka) arbitralnie ustalonego przypisania.
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).
Widać, że dane zakodowane przy pomocy base64 na maszynie, która używa 8-bitowego słowa do reprezentacji znaków powiększają swój rozmiar o 33%.
| Wartość | Znak | Wartość | Znak | Wartość | Znak | Wartość | Znak | Wartość | Znak | Wartość | Znak |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | A | 11 | L | 22 | W | 33 | h | 44 | s | 55 | 3 |
| 1 | B | 12 | M | 23 | X | 34 | i | 45 | t | 56 | 4 |
| 2 | C | 13 | N | 24 | Y | 35 | j | 46 | u | 57 | 5 |
| 3 | D | 14 | O | 25 | Z | 36 | k | 47 | v | 58 | 6 |
| 4 | E | 15 | P | 26 | a | 37 | l | 48 | w | 59 | 7 |
| 5 | F | 16 | Q | 27 | b | 38 | m | 49 | x | 60 | 8 |
| 6 | G | 17 | R | 28 | c | 39 | n | 50 | y | 61 | 9 |
| 7 | H | 18 | S | 29 | d | 40 | o | 51 | z | 62 | + |
| 8 | I | 19 | T | 30 | e | 41 | p | 52 | 0 | 63 | / |
| 9 | J | 20 | U | 31 | f | 42 | q | 53 | 1 | ||
| 10 | K | 21 | V | 32 | g | 43 | r | 54 | 2 | pad | = |
| 11 | L | 22 | W | 33 | h | 44 | s | 55 | 3 |
Ostatnie dwa znaki nie są alfanumeryczne. W niektórych niestandardowych odmianach kodowania base64 mogą zostać zastąpione znakami - i _ (minus 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)
[edytuj] 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 nowej linii na końcu zdania również został zakodowany na potrzeby tego przykładu):
SWRlYWx5IHNhIGphayBnd2lhemR5IC0gbmllIG1vem5hIGljaCBvc2lhZ25hYywgYWxlIG1v em5hIHNpZSBuaW1pIGtpZXJvd2FjLg0K
2007-11-06 11:42 CET
Poprawki:
1. zmiana myślnika w zdaniu do zakodowania z kodu 0x96 na 0x2D - wyglądają tak samo, ale to ten drugi został użyty do wygenerowania zakodowanego ciągu,
2. zmiana 'ą' na 'a' w zdaniu do zakodowania - przyczyna jak wyżej,
3. zmiana przedostatniej litery ciągu zakodowanego z 'N' na '0' (zero): taki ciąg powstaje po zakodowaniu zdania zakończonego znakami nowej linii (0x0D, 0x0A).
[edytuj] 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.
[edytuj] Zobacz też
[edytuj] Linki zewnętrzne
| Termin apelacji Karadżicia minął |
O północy z piątku na sobotę minął ostateczny termin odwoływania się od ekstradycji do Trybunału ONZ zatrzymanego w poniedziałek w Belgradzie przywódcy bośniackich Serbów Radovana Karadżicia.
|
| Włosi drżą przed imigrantami |
Stały napływ nielegalnych imigrantów nie na żarty przestraszył włoski rząd. W związku z tym, tamtejsze władze ogłosiły w piątek stan kryzysowy na terenie całego kraju.
|
| Uczył studentów jak godnie umierać |
Zmarł Randy Pausch, niezwykły wykładowca amerykańskiego uniwersytetu, który przekonywał swoich studentów, że umieranie nie jest tragedią. Chory na raka naukowiec zyskał popularność dzięki opublikowanemu w internecie wykładowi, podczas którego robił pompki i śmiał się ze zbliżającej śmierci.
|
| Z maczetami na uchodźców |
23 osoby zostały ranne po tym, jak kilkudziesięciu mężczyzn zaatakowało mieszkańców ośrodka dla uchodźców w Norwegii. Napastnicy mieli przy sobie metalowe pręty i maczety.
|
| Setki osób uciekają przed powodzią |
Ponad 300 osób zostało ewakuowanych po tym, jak ulewne deszcze spowodowały powodzie w północno-wschodniej Rumunii. Woda uszkodziła drogi, mosty i linie energetyczne.
|
O północy z piątku na sobotę minął ostateczny termin odwoływania się od ekstradycji do Trybunału ONZ zatrzymanego w poniedziałek w Belgradzie przywódcy bośniackich Serbów Radovana Karadżicia.
Stały napływ nielegalnych imigrantów nie na żarty przestraszył włoski rząd. W związku z tym, tamtejsze władze ogłosiły w piątek stan kryzysowy na terenie całego kraju.
Zmarł Randy Pausch, niezwykły wykładowca amerykańskiego uniwersytetu, który przekonywał swoich studentów, że umieranie nie jest tragedią. Chory na raka naukowiec zyskał popularność dzięki opublikowanemu w internecie wykładowi, podczas którego robił pompki i śmiał się ze zbliżającej śmierci.
23 osoby zostały ranne po tym, jak kilkudziesięciu mężczyzn zaatakowało mieszkańców ośrodka dla uchodźców w Norwegii. Napastnicy mieli przy sobie metalowe pręty i maczety.
Ponad 300 osób zostało ewakuowanych po tym, jak ulewne deszcze spowodowały powodzie w północno-wschodniej Rumunii. Woda uszkodziła drogi, mosty i linie energetyczne.