Base64는 64문자의 영숫자를 이용하여 멀티 바이트 문자열이나 이진 데이터를 다루기 위한 인코딩 방식.
Simple 하게 java.util.Base64 에서 제공하는 기능을 사용.
인코딩에는 java.util.Base64.Encoded#encode() 메소드, 디코딩에는 java.util.Base64.Decode#decode() 메소드를 사용.
Base64 인코딩, 디코딩을 자주하는데, 자체 라이브러리가 아닐 경우 byte 를 다시 String 으로 변환해서 테스트하는 게 귀찮아서 history로 남깁니다.
Base64
Base64.Encoder
Base64.Decoder
import java.io.UnsupportedEncodingException;
import java.util.Base64;
import java.util.Base64.Decoder;
import java.util.Base64.Encoder;
import java.nio.charset.StandardCharsets;
public class Base64EncodeDecodeSample {
public static void main(String[] args) throws UnsupportedEncodingException {
String target = "암호화할내용을적어주세요";
byte[] targetBytes = target.getBytes(StandardCharsets.UTF_8);
// Base64 인코딩 ///////////////////////////////////////////////////
Encoder encoder = Base64.getEncoder();
// Encoder#encode(byte[] src) :: 바이트배열로 반환
byte[] encodedBytes = encoder.encode(targetBytes);
System.out.println(new String(encodedBytes));
// Encoder#encodeToString(byte[] src) :: 문자열로 반환
String encodedString = encoder.encodeToString(targetBytes);
System.out.println(encodedString);
// Base64 디코딩 ///////////////////////////////////////////////////
Decoder decoder = Base64.getDecoder();
// Decoder#decode(bytes[] src)
byte[] decodedBytes1 = decoder.decode(encodedBytes);
// Decoder#decode(String src)
byte[] decodedBytes2 = decoder.decode(encodedString);
// 디코딩한 문자열을 표시
String decodedString = new String(decodedBytes1, StandardCharsets.UTF_8);
System.out.println(decodedString);
System.out.println(new String(decodedBytes2, StandardCharsets.UTF_8));
}
}