03.업/01.자바
base64인코딩 디코딩
봄날의차
2023. 6. 8. 09:45
package egovframework.cals.cmm.web;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import javax.xml.bind.DatatypeConverter;
import org.apache.tomcat.util.codec.binary.Base64;
public class Base64Test {
public static String doEncodeBase64(String base64EncodedString){
byte[] decodedBytes = Base64.decodeBase64(base64EncodedString);
String originalString = new String(decodedBytes, StandardCharsets.UTF_8);
System.out.println("originalString:"+originalString);
return originalString;
}
public static Map<String, Object> doDecodeBase64(String testText){
byte[] testToByte = testText.getBytes();
String encodeByte = DatatypeConverter.printBase64Binary(testToByte);
byte[] decodeByte = DatatypeConverter.parseBase64Binary(encodeByte);
Map<String, Object> map = new HashMap<String, Object>();
System.out.println("인코딩 전 : " + testText);
System.out.println("인코딩 : " + encodeByte);
System.out.println("디코딩 : " + new String(decodeByte));
map.put("encodeStr", encodeByte);
map.put("dncodeStr", new String(decodeByte));
return map;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String base64EncodedString = "ㅊㅊㅊㅊㅊㅊㅊㅊㅊㅊㅊㅊㅊㅊㅊㅊUW==";
String encodeStr = Base64Test.doEncodeBase64(base64EncodedString);
System.out.println("encodeStr:"+encodeStr);
String testText = "C:\\data\\xxxxx\\data\\aaaaa\\D9999999\\qwerr\\Y3\\(T)AAAA-ㅁㅁㅁㅁ 도로건설공사\\도면\\C토목_도로\\000ㄴㄴㄴ종합\\01ㅁㅁㅁㅁ종합계획도\\01ㅉㅉㅉㅉㅉ평면도";
Map<String, Object> map = Base64Test.doDecodeBase64(testText);
System.out.println("encodeStr:"+(String)map.get("encodeStr"));
System.out.println("dncodeStr:"+(String)map.get("dncodeStr"));
}
}
>>결과<<
originalString:C0010101-002-1.악양교.KOQ
encodeStr:C0010101-002-1.악양교.KOQ
인코딩 전 : C:\data\aaaaa\data\dddd\ㅁ9999999\ㅇㅇㅇㅇ\ㅁㅁ\(T)ㅁㅁㅁㅁ 도로건설공사\도면\C토목_ㅁㅁ\000ㅇㅇㅇ\01ㅇㅇ계획도\01ㅇㅇ평면도
인코딩 : ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁyMDEwMDA3XFkzXChUKeuMgOyghC3sspzslYjqsIQg64+E66Gc6rG07ISk6rO17IKsXOuPhOuptFxD7Yag66qpX+uPhOuhnFwwMDDsl7DqsrDsooXtlalcMDHsl7DqsrDsooXtlanqs4Ttmo3rj4RcMDHsl7DqsrDsooXtlanqs4Ttmo3tj4nrqbTrj4Q=
디코딩 : C:\data\citis5\data\edoc\D9999999\C2010007\Y3\(T)ㅌㅌㅌㅌㅌ\도면\Cㄴㄴㄴ_도로\000ㅋㅋㅋㅋ\01ㅋㅋㅋㅋ계획도\01ㅋㅋㅋㅋ계획평면도
encodeStr:ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁ9jXEQ5OTk5OTk5XEMyMDEwMDA3XFkzXChUKeuMgOyghC3sspzslYjqsIQg64+E66Gc6rG07ISk6rO17IKsXOuPhOuptFxD7Yag66qpX+uPhOuhnFwwMDDsl7DqsrDsooXtlalcMDHsl7DqsrDsooXtlanqs4Ttmo3rj4RcMDHsl7DqsrDsooXtlanqs4Ttmo3tj4nrqbTrj4Q=
dncodeStr:C:\ㅇㅇㅇㅇㅇ\D9999999\C2010007\Y3\(T)ㅌㅌㅌㅌㅌ\도면\Cㄴㄴㄴ_도로\000ㅋㅋㅋㅋ\01ㅋㅋㅋㅋ계획도\01ㅋㅋㅋㅋ계획평면도
>>참고<<
https://veneas.tistory.com/entry/JAVA-Base64-인코딩-디코딩-3가지-방법
[JAVA] Base64 인코딩, 디코딩 3가지 방법
목차 1. Base64 들어가기 전에 1.1. 인코딩이란? - 인코딩(encoding)은 파일에 저장된 정보의 형태나 형식을 데이터 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해서 다른 형태로 변환하는 처
veneas.tistory.com