728x90
일단 인코딩, 디코딩을 쉽게 설명을 하면
"hello world" 라는 단어를 인코딩을 하면 base64형태로 인코딩 됩니다.
base64를 디코딩하면 "hello world"라고 나오게 되는 것이죠
자바 버전별로 사용되는게 너무많아서 찾다보니 stackoverflow에 잘 정리된 글이 있어서 참조했습니다.
1. Java 6 and Java 7
java6부터는 javax.xml.bind.DatatypeConverter를 사용할 수 있습니다.
이건 jre의 일부이면 별도의 라이브러리가 필요하지 않습니다.
encoding
사용예제)
byte[] message = "hello world".getBytes("UTF-8");
String encoded = DatatypeConverter.printBase64Binary(message);
System.out.println(encoded);
결과)
// => aGVsbG8gd29ybGQ=
decoding
사용예제)
byte[] decoded = DatatypeConverter.parseBase64Binary("aGVsbG8gd29ybGQ=");
System.out.println(new String(decoded, "UTF-8"));
결과)
// => hello world
2. Java 8
java8은 java.util.Base64 인코딩 및 디코딩을 제공합니다
encoding
사용예제)
byte[] message = "hello world".getBytes(StandardCharsets.UTF_8);
String encoded = Base64.getEncoder().encodeToString(message);
System.out.println(encoded);
결과)
// => aGVsbG8gd29ybGQ=
decoding
사용예제)
byte[] decoded = Base64.getDecoder().decode("aGVsbG8gd29ybGQ=");
System.out.println(new String(decoded, StandardCharsets.UTF_8));
결과)
// => hello world
728x90
'Programming > Java' 카테고리의 다른 글
자바9 jshell 사용법 / REPL (0) | 2019.04.09 |
---|---|
[Java] e.printStackTrace() String으로 변환하기(printStactTrace to String) (0) | 2019.04.05 |
자바 디렉토리 내 특정 파일 리스트 출력 / 디렉토리 전체 목록 가져오기 (2) | 2019.04.03 |
[Java/이클립스] 이클립스 메모리 설정(Heap 영역 늘리기 / 속도향상) (0) | 2019.04.02 |
[Java] Split 메서드 사용시 실수하기 쉬운 것 (0) | 2019.04.02 |
댓글