logo

Java Base64 인코딩 및 디코딩

Java는 암호화를 처리하기 위해 Base64 클래스를 제공합니다. 제공된 방법을 사용하여 데이터를 암호화하고 해독할 수 있습니다. 해당 메소드를 사용하려면 소스 파일에서 java.util.Base64를 가져와야 합니다.

이 클래스는 각 수준에서 정보를 암호화하기 위해 세 가지 서로 다른 인코더와 디코더를 제공합니다. 다음 수준에서 이러한 방법을 사용할 수 있습니다.


기본 인코딩 및 디코딩

인코딩 및 디코딩 작업을 위해 RFC 4648 및 RFC 2045에서 Java가 지정한 Base64 알파벳을 사용합니다. 인코더는 줄 구분 문자를 추가하지 않습니다. 디코더는 base64 알파벳 이외의 문자가 포함된 데이터를 거부합니다.


URL 및 파일 이름 인코딩 및 디코딩

인코딩 및 디코딩 작업을 위해 RFC 4648에서 Java가 지정한 Base64 알파벳을 사용합니다. 인코더는 줄 구분 문자를 추가하지 않습니다. 디코더는 base64 알파벳 이외의 문자가 포함된 데이터를 거부합니다.


몸짓 광대극

인코딩 및 디코딩 작업을 위해 RFC 2045에 지정된 Base64 알파벳을 사용합니다. 인코딩된 출력은 각각 76자 이하의 줄로 표시되어야 하며 줄 구분 기호로 캐리지 리턴 ' ' 바로 뒤에 줄 바꿈 ' '을 사용합니다. 인코딩된 출력 끝에 줄 구분 기호가 추가되지 않습니다. base64 알파벳 테이블에 없는 모든 줄 구분 기호 또는 기타 문자는 디코딩 작업에서 무시됩니다.


Base64의 중첩 클래스

수업 설명
Base64.디코더 이 클래스는 RFC 4648 및 RFC 2045에 지정된 Base64 인코딩 체계를 사용하여 바이트 데이터를 디코딩하기 위한 디코더를 구현합니다.
Base64.인코더 이 클래스는 RFC 4648 및 RFC 2045에 지정된 Base64 인코딩 체계를 사용하여 바이트 데이터를 인코딩하기 위한 인코더를 구현합니다.

Base64 방법

행동 양식 설명
공개 정적 Base64.Decoder getDecoder() 기본 유형 base64 인코딩 체계를 사용하여 디코딩하는 Base64.Decoder를 반환합니다.
공개 정적 Base64.Encoder getEncoder() 기본 유형 base64 인코딩 체계를 사용하여 인코딩하는 Base64.Encoder를 반환합니다.
공개 정적 Base64.Decoder getUrlDecoder() URL 및 파일 이름 안전 유형 base64 인코딩 체계를 사용하여 디코딩하는 Base64.Decoder를 반환합니다.
공개 정적 Base64.Decoder getMimeDecoder() MIME 유형 base64 디코딩 체계를 사용하여 디코딩하는 Base64.Decoder를 반환합니다.
공개 정적 Base64.Encoder getMimeEncoder() MIME 유형 base64 인코딩 체계를 사용하여 인코딩하는 Base64.Encoder를 반환합니다.
공개 정적 Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator) 지정된 줄 길이와 줄 구분 기호가 있는 MIME 유형 base64 인코딩 체계를 사용하여 인코딩하는 Base64.Encoder를 반환합니다.
공개 정적 Base64.Encoder getUrlEncoder() URL 및 파일 이름 안전 유형 base64 인코딩 체계를 사용하여 인코딩하는 Base64.Encoder를 반환합니다.

Base64.Decoder 메서드

행동 양식 설명
공개 바이트[] 디코드(바이트[] src) Base64 인코딩 체계를 사용하여 입력 바이트 배열의 모든 바이트를 디코딩하고 결과를 새로 할당된 출력 바이트 배열에 씁니다. 반환된 바이트 배열은 결과 바이트의 길이입니다.
공개 바이트[] 디코드(문자열 src) Base64 인코딩 체계를 사용하여 Base64로 인코딩된 문자열을 새로 할당된 바이트 배열로 디코딩합니다.
공개 int 디코드(바이트[] src, 바이트[] dst) Base64 인코딩 체계를 사용하여 입력 바이트 배열의 모든 바이트를 디코딩하고 결과를 오프셋 0부터 시작하여 지정된 출력 바이트 배열에 씁니다.
공개 ByteBuffer 디코드(ByteBuffer 버퍼) Base64 인코딩 체계를 사용하여 입력 바이트 버퍼의 모든 바이트를 디코딩하고 결과를 새로 할당된 ByteBuffer에 씁니다.
공개 입력스트림 랩(InputStream은) Base64로 인코딩된 바이트 스트림을 디코딩하기 위한 입력 스트림을 반환합니다.

Base64.Encoder 메서드

행동 양식 설명
공개 바이트[] 인코딩(바이트[] src) Base64 인코딩 체계를 사용하여 지정된 바이트 배열의 모든 바이트를 새로 할당된 바이트 배열로 인코딩합니다. 반환된 바이트 배열은 결과 바이트의 길이입니다.
공개 int 인코딩(바이트[] src, 바이트[] dst) Base64 인코딩 체계를 사용하여 지정된 바이트 배열의 모든 바이트를 인코딩하고, 오프셋 0에서 시작하여 결과 바이트를 지정된 출력 바이트 배열에 씁니다.
공개 문자열 encodeToString(byte[] src) Base64 인코딩 체계를 사용하여 지정된 바이트 배열을 문자열로 인코딩합니다.
공개 ByteBuffer 인코딩(ByteBuffer 버퍼) Base64 인코딩 체계를 사용하여 지정된 바이트 버퍼의 나머지 모든 바이트를 새로 할당된 ByteBuffer로 인코딩합니다. 반환 시 소스 버퍼의 위치는 해당 제한까지 업데이트됩니다. 한도는 변경되지 않습니다. 반환된 출력 버퍼의 위치는 0이 되며 그 제한은 결과로 인코딩된 바이트 수입니다.
공개 OutputStream 랩(OutputStream os) Base64 인코딩 체계를 사용하여 바이트 데이터를 인코딩하기 위한 출력 스트림을 래핑합니다.
Padding() 없는 공용 Base64.Encoder 이 인스턴스와 동일하게 인코딩하는 인코더 인스턴스를 반환하지만 인코딩된 바이트 데이터 끝에 패딩 문자를 추가하지 않습니다.

Java Base64 예제: 기본 인코딩 및 디코딩

 import java.util.Base64; publicclass Base64BasicEncryptionExample { publicstaticvoid main(String[] args) { // Getting encoder Base64.Encoder encoder = Base64.getEncoder(); // Creating byte array bytebyteArr[] = {1,2}; // encoding byte array bytebyteArr2[] = encoder.encode(byteArr); System.out.println('Encoded byte array: '+byteArr2); bytebyteArr3[] = newbyte[5]; // Make sure it has enough size to store copied bytes intx = encoder.encode(byteArr,byteArr3); // Returns number of bytes written System.out.println('Encoded byte array written to another array: '+byteArr3); System.out.println('Number of bytes written: '+x); // Encoding string String str = encoder.encodeToString('JavaTpoint'.getBytes()); System.out.println('Encoded string: '+str); // Getting decoder Base64.Decoder decoder = Base64.getDecoder(); // Decoding string String dStr = new String(decoder.decode(str)); System.out.println('Decoded string: '+dStr); } } 

산출:

 Encoded byte array: [B@6bc7c054 Encoded byte array written to another array: [B@232204a1 Number of bytes written: 4 Encoded string: SmF2YVRwb2ludA== Decoded string: JavaTpoint 

Java Base64 예: URL 인코딩 및 디코딩

 import java.util.Base64; publicclass Base64BasicEncryptionExample { publicstaticvoid main(String[] args) { // Getting encoder Base64.Encoder encoder = Base64.getUrlEncoder(); // Encoding URL String eStr = encoder.encodeToString('http://www.javatpoint.com/java-tutorial/'.getBytes()); System.out.println('Encoded URL: '+eStr); // Getting decoder Base64.Decoder decoder = Base64.getUrlDecoder(); // Decoding URl String dStr = new String(decoder.decode(eStr)); System.out.println('Decoded URL: '+dStr); } } 

산출:

 Encoded URL: aHR0cDovL3d3dy5qYXZhdHBvaW50LmNvbS9qYXZhLXR1dG9yaWFsLw== Decoded URL: http://www.javatpoint.com/java-tutorial/ 

Java Base64 예제: MIME 인코딩 및 디코딩

 package Base64Encryption; import java.util.Base64; publicclass Base64BasicEncryptionExample { publicstaticvoid main(String[] args) { // Getting MIME encoder Base64.Encoder encoder = Base64.getMimeEncoder(); String message = 'Hello, 
You are informed regarding your inconsistency of work'; String eStr = encoder.encodeToString(message.getBytes()); System.out.println('Encoded MIME message: '+eStr); // Getting MIME decoder Base64.Decoder decoder = Base64.getMimeDecoder(); // Decoding MIME encoded message String dStr = new String(decoder.decode(eStr)); System.out.println('Decoded message: '+dStr); } } 

산출:

 Encoded MIME message: SGVsbG8sIApZb3UgYXJlIGluZm9ybWVkIHJlZ2FyZGluZyB5b3VyIGluY29uc2lzdGVuY3kgb2Yg d29yaw== Decoded message: Hello, You are informed regarding your inconsistency of work