반응형
Java에서 Base64 문자열 디코딩
간단한 Base64 문자열을 디코딩하려고하는데 그렇게 할 수 없습니다. 현재 org.apache.commons.codec.binary.Base64
패키지를 사용하고 있습니다.
내가 사용하는 테스트 문자열은 abcdefg
PHP를 사용하여 인코딩되었습니다 YWJjZGVmZw==
.
이것은 현재 사용중인 코드입니다.
Base64 decoder = new Base64();
byte[] decodedBytes = decoder.decode("YWJjZGVmZw==");
System.out.println(new String(decodedBytes) + "\n") ;
위의 코드는 오류를 발생시키지 않지만 예상대로 디코딩 된 문자열을 출력하지 않습니다.
사용중인 패키지를 수정합니다.
import org.apache.commons.codec.binary.Base64;
그리고 다음과 같이 사용하십시오.
byte[] decoded = Base64.decodeBase64("YWJjZGVmZw==");
System.out.println(new String(decoded, "UTF-8") + "\n");
다음은 최신 버전의 Apache 공통 코덱에서 작동합니다.
byte[] decodedBytes = Base64.getDecoder().decode("YWJjZGVmZw==");
System.out.println(new String(decodedBytes));
및 인코딩
byte[] encodedBytes = Base64.getEncoder().encode(decodedBytes);
System.out.println(new String(encodedBytes));
일반적으로 base64는 이미지에 사용됩니다. 이미지를 디코딩하려는 경우 (이 예제에서는 org.apache.commons.codec.binary.Base64 패키지가있는 jpg) :
byte[] decoded = Base64.decodeBase64(imageJpgInBase64);
FileOutputStream fos = null;
fos = new FileOutputStream("C:\\output\\image.jpg");
fos.write(decoded);
fos.close();
아파치를 사용하지 않으려면 Java8을 사용할 수 있습니다.
byte[] decodedBytes = Base64.getDecoder().decode("YWJjZGVmZw==");
System.out.println(new String(decodedBytes) + "\n");
참조 URL : https://stackoverflow.com/questions/11544568/decoding-a-base64-string-in-java
반응형
'Development Tip' 카테고리의 다른 글
JavaScript의 구성, 상속 및 집계 (0) | 2020.12.25 |
---|---|
내 jQuery : not () 선택기가 CSS에서 작동하지 않는 이유는 무엇입니까? (0) | 2020.12.25 |
Java enum과 private 생성자가있는 클래스의 차이점은 무엇입니까? (0) | 2020.12.25 |
R의 히스토그램에 정규 곡선 오버레이 (0) | 2020.12.25 |
CSS : disabled pseudo-class 또는 [disabled] 속성 선택기를 사용해야합니까, 아니면 의견의 문제입니까? (0) | 2020.12.25 |