Java
Java - base64 인코딩, 디코딩하기
codeManager
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으로 변환하는 법
반응형