BASE64 인코딩 디코딩하기
개발하면서 Base64에 대해 쓰는건 알고 있지만 왜 쓰는지 감을 못잡았기에 BASE64에 대한 개념을 포스팅 한 적이 있었습니다. 개념에 대해 알고 싶으시면 http://ktko.tistory.com/114 를 봐주시면 될 것 같습니다.
JAVA에서 BASE64 인코딩 디코딩을 진행하는 방법을 2가지로 정리하였습니다.
1. JAVA에서 제공하는 클래스를 이용하는 방식
2. 오픈 소스 라이브러리(Apache Commons Codec)를 이용하는 방식
2번 방식으로 진행하기 위해서는 아래 링크로 들어가 BASE64를 제공하는 Apache Commons Codec 라이브러리를 다운받아야 합니다.
http://mvnrepository.com/artifact/commons-codec/commons-codec/1.9
1. JAVA에서 제공하는 클래스를 이용하는 방식
import java.util.Base64; import java.util.Base64.Decoder; import java.util.Base64.Encoder; public class Base64Test { public static void main(String[] args) { base64(); } public static void base64() { String text = "ktko"; byte[] targetBytes = text.getBytes(); // Base64 인코딩 /////////////////////////////////////////////////// Encoder encoder = Base64.getEncoder(); byte[] encodedBytes = encoder.encode(targetBytes); // Base64 디코딩 /////////////////////////////////////////////////// Decoder decoder = Base64.getDecoder(); byte[] decodedBytes = decoder.decode(encodedBytes); System.out.println("인코딩 전 : " + text); System.out.println("인코딩 text : " + new String(encodedBytes)); System.out.println("디코딩 text : " + new String(decodedBytes)); } }
2. 오픈 소스 라이브러리(Apache Commons Codec)를 이용하는 방식
import org.apache.commons.codec.binary.Base64; public class Base64Test2 { public static void main(String args[]) { base64Case1(); } public static void base64() { String text = "ktko"; /* base64 encoding */ byte[] encodedBytes = Base64.encodeBase64(text.getBytes()); /* base64 decoding */ byte[] decodedBytes = Base64.decodeBase64(encodedBytes); System.out.println("인코딩 전 : " + text); System.out.println("인코딩 text : " + new String(encodedBytes)); System.out.println("디코딩 text : " + new String(decodedBytes)); } }
개인적으로 오픈 소스 라이브러리를 사용하는 것을 추천합니다.!! 편하니깐!
'Java 개발 이야기' 카테고리의 다른 글
자바 날짜와 시간 다루기 (0) | 2017.09.16 |
---|---|
자바 SMTP와 Mail 발송하기(Google, Naver) (10) | 2017.09.08 |
자바 랜덤함수를 이용한 인증번호 인증문자 만들기 (0) | 2017.09.02 |
자바 JVM 메모리 구조 이해하기 (2) | 2017.08.28 |
자바 MessageDigest를 이용한 Hash 알고리즘 (0) | 2017.08.23 |