-
Java - base64 인코딩, 디코딩하기Java 2022. 7. 14. 18:57반응형
java.util.Base64 클래스를 사용하면 base64로 인코딩, 디코딩을 쉽게 할 수 있습니다.
1. Base64 encoding 예제
"test" 라는 스트링을 base64로 인코딩하는 예제입니다.
import java.util.Base64; class Base64Test { public static void main(String[] args) { String str = "test"; String encodedStr = Base64.getEncoder().encodeToString(str.getBytes()); System.out.println("encoded string: " + encodedStr); } }
결과
encoded string: dGVzdA==
2. Base64 decoding 예제
1예제에서 인코딩한 스트링을 다시 디코딩하는 예제입니다.
import java.util.Base64; class Base64Test { public static void main(String[] args) { String encodedStr = "dGVzdA=="; byte[] decodedBytes = Base64.getDecoder().decode(encodedStr); String decodedStr = new String(decodedBytes); System.out.println("decoded string: " + decodedStr); } }
결과
decoded string: test
3. Base64 URL encoding
java.util.Base64에서는 URL safe한 인코딩도 제공합니다.
URL에서 사용되는 +, / 문자를 -, _로 치환시키는 방식으로 URL safe한 인코딩을 제공합니다.
import java.util.Base64; class Base64Url { public static void main(String[] args) { String url = "https://codemanager.tistory.com/36"; String encoded = Base64.getUrlEncoder().encodeToString(url.getBytes()); System.out.println("encoded url: " + encoded); } }
결과
encoded url: aHR0cHM6Ly9jb2RlbWFuYWdlci50aXN0b3J5LmNvbS8zNg==
4. Base64 URL decoding
import java.util.Base64; class Base64Url { public static void main(String[] args) { String encodedUrl = "aHR0cHM6Ly9jb2RlbWFuYWdlci50aXN0b3J5LmNvbS8zNg=="; byte[] decodedBytes = Base64.getUrlDecoder().decode(encodedUrl); String decodedStr = new String(decodedBytes); System.out.println("decoded string: " + decodedStr); } }
결과
decoded string: https://codemanager.tistory.com/36
5. Base64 padding 없이 인코딩하기
Base64 인코딩은 인코딩된 문자열의 길이가 3의 배수가 아닌 경우 기본적으로 인코딩된 바이트 데이터 끝에 패딩문자(=)를 추가합니다.
패딩 문자를 빼고 인코딩된 출력값을 얻는 예제입니다.
이 출력 결과는 다시 디코딩할 수 없습니다.
import java.util.Base64; class Base64Test { public static void main(String[] args) { String str = "test"; String encodedStr = Base64.getEncoder().withoutPadding().encodeToString(str.getBytes()); System.out.println("encoded string: " + encodedStr); } }
결과
encoded string: dGVzdA
참고. byte를 string으로 변환하는 법
반응형'Java' 카테고리의 다른 글
Java - String을 int로 변환하기 (0) 2022.07.15 Java - byte[]를 String으로 변환 (0) 2022.07.15 Java - ArrayList.removeAll() 사용법 및 예제 (0) 2022.07.07 Java - ArrayList.retainAll() 사용법 및 예제 (리스트 교집합 구하기) (0) 2022.07.06 Java - ArrayList.addAll() 사용법 및 예제 (0) 2022.07.05