Zawartość
Inne sekcjeBase64 to metoda kodowania każdych 3 bajtów danych wejściowych na 4 bajty danych wyjściowych; jest powszechnie używany do kodowania zdjęć lub dźwięku w celu wysyłania wiadomości e-mail (chociaż czasy 7-bitowych linii transmisyjnych w większości się skończyły) oraz sposób na ukrycie uwierzytelniania stron internetowych (nazwy użytkownika i hasła) przed przypadkowym podsłuchiwaniem. Oto przykład kodowania kodera Base64 w Javie, wieloplatformowym języku programowania. Ten przykład i testowy ciąg kodujący zostały zapożyczone z artykułu w Wikipedii.
Kroki
- Wprowadź plik informacji i nazwy
- Uruchom swój edytor, taki jak Notatnik lub vi, i wprowadź wstępne, takie jak deklaracja klasy i znane stałe. Nazwij plik Base64.java.
-
Te wartości stałe są określone, więc artykuł stwierdza, w odpowiednich dokumentach RFC. Zasadniczo dobrym pomysłem jest przeczytanie wszystkich odpowiednich specyfikacji RFC przed rozpoczęciem kodowania. - Koduj za pomocą getBytes (). Traktowanie znaków jako bajtów oznacza, że znaki wielobajtowe, takie jak japoński lub chiński, nie będą poprawnie kodowane. Dlatego musimy użyć metody GetBytes () metody String, aby przekonwertować znaki Unicode bieżącej lokalizacji na bajty przed rozpoczęciem kodowania.
- Jeśli pracujesz nad dokumentem w języku japońskim w języku amerykańskim w języku angielskim, musisz określić ustawienia regionalne dla danych wyjściowych funkcji getBytes (), na przykład getBytes („UTF-8”).
- Jeśli pracujesz nad dokumentem w języku japońskim w języku amerykańskim w języku angielskim, musisz określić ustawienia regionalne dla danych wyjściowych funkcji getBytes (), na przykład getBytes („UTF-8”).
- Dowiedz się, ile potrzeba bajtów uzupełniających. Przydaje się tutaj operator modulo języka Java,%. Zadeklarujmy również nazwę i parametry podprogramu, gdy już to zrobimy.
-
Użyj wartości, aby uzupełnić dane wejściowe o wartość null. Zauważ, że jeśli wypełnienie nie jest potrzebne, żadne nie jest dodawane, ponieważ bierzemy moduł 3 po raz drugi, zamieniając 3 na 0. - Teraz dochodzimy do mięsa: pakowanie po trzy bajty na raz w 24-bitową liczbę całkowitą, a następnie wyodrębnianie 6-bitowych indeksów do łańcucha kodującego. Te liczby nie są magiczne: 24 dzieli się na 6 dokładnie 4 razy, a 6 bitów może zawierać wartości od 0 do 63, które mogą indeksować dowolną wartość w 64-bajtowym łańcuchu kodującym.
- Spakuj wyjście po wypełnieniu go, wstawiając CRLF na wymaganych 76-bajtowych granicach, używając oddzielnego podprogramu dla przejrzystości.
- Sprawdź, czy chcesz dodać główną procedurę do celów testowych. Zwykle jest to dobry pomysł przed wysłaniem swojego kodu do publicznego użytku.
- Oto gotowy moduł:
- Skompiluj go, używając javac, gcj, like lub tym podobnych; i przetestuj, używając cytatu Hobbesa z artykułu w Wikipedii:
- Oto wynik:
- Upewnij się, że pasuje dokładnie. To albo oznacza, że oba programy są błędne, albo oba mają mniej więcej rację. W tym miejscu możesz zechcieć ponownie odwiedzić artykuł w Wikipedii i przeczytać powiązane RFC, aby sprawdzić, czy coś przeoczyliśmy.
Pytania i odpowiedzi społeczności
Jak dekodować z Base64 na String w Javie?
Na przykład, zmienna Base64 A = 5; Ciąg zmiennaB = zmiennaA. Spróbuj tego pseudokodu.
Porady
- Nie myśl, że przed kodowaniem zawsze musisz coś do końca zrozumieć. W miarę postępów sprawy stają się wyraźniejsze.
- Java jest w porządku jako język ogólnego przeznaczenia, a w przypadku urządzeń takich jak telefony komórkowe może być jedyną opcją programisty, ale może się okazać, że składnia JavaScript lub Python jest bardziej zwięzła i wydajniejsza. Różne języki mają swoje mocne i słabe strony.
- Spróbuj napisać metodę towarzyszącą decode () dla tego modułu!
- Podczas gdy odczyt odpowiednich specyfikacji RFC jest konieczny dla kodu produkcyjnego, nadmiar informacji może być przytłaczający; czasami najlepszym sposobem jest przejrzenie ich, kodowanie zgodnie z tym, co rozumiesz, a następnie powrót i sprawdzenie funkcjonalności punkt po punkcie względem obowiązkowych wymagań RFC.
Powiązane artykuły
- Zostań programistą Java
- Napisz swój pierwszy program w Javie