Java의 base64.decode
- Base64 클래스의 인코딩 및 디코딩 방법
- Java의 Base64 인코딩
- Java에서 Base64 디코딩
- Java에서 Apache Commons Codec Library를 사용한 인코딩 및 디코딩
- Java의 인코딩 및 디코딩 URL
- Java의 MIME 인코딩 및 디코딩
이 튜토리얼에서는 Java의 base64.decode
가 무엇인지, 그리고 이를 사용하여 Java에서 인코딩된 데이터를 디코딩하는 방법을 소개합니다.
Java는 Java 8 버전에 Base64
라는 새 클래스를 추가했습니다. 이 클래스에는 데이터를 인코딩 및 디코딩하는 데 사용할 수 있는 인코더 및 디코더와 같은 여러 중첩 클래스가 있습니다. 기본 인코딩, URL 인코딩, MIME 인코딩 및 각각에 대한 디코딩 지원과 같은 여러 인코딩 기능을 허용합니다. 각 목적에 대한 방법은 아래에서 볼 수 있습니다.
Base64 클래스의 인코딩 및 디코딩 방법
// Basic Encoding Decoding
public static Base64.Decoder getDecoder() public static Base64
.Encoder getEncoder()
// Url Encoding Decoding
public static Base64.Decoder getUrlDecoder() public static Base64
.Encoder getUrlEncoder()
// Mime Encoding Decoding
public static Base64.Decoder getMimeDecoder() public static Base64.Encoder getMimeEncoder()
이 기사에서는 기본 및 기타 유형의 인코딩을 인코딩 및 디코딩하는 방법을 배웁니다. 몇 가지 예부터 살펴보겠습니다.
Java의 Base64 인코딩
기본 인코딩 예제입니다. Java는 데이터를 인코딩하기 위해 getEncoder()
메소드를 제공합니다. 아래의 예를 참조하십시오.
import java.io.UnsupportedEncodingException;
import java.util.Base64;
import java.util.Base64.Encoder;
public class SimpleTesting {
public static void main(String[] args) throws UnsupportedEncodingException {
String msg = "This is confidential";
System.out.println("Message before encoding: " + msg);
byte[] bytes = msg.getBytes("UTF-8");
Encoder encoder = Base64.getEncoder();
String encoded = encoder.encodeToString(bytes);
System.out.println("Message after encoding: " + encoded);
}
}
출력:
Message before encoding: This is confidential
Message after encoding: VGhpcyBpcyBjb25maWRlbnRpYWw=
Java에서 Base64 디코딩
여기서는 getDecoder()
메서드를 사용하여 인코딩된 데이터를 디코딩했습니다. 이 메서드는 결과를 바이트 단위로 반환합니다. 따라서 검증을 위해 String
생성자를 사용하여 데이터를 String으로 다시 가져옵니다.
import java.io.UnsupportedEncodingException;
import java.util.Base64;
import java.util.Base64.Encoder;
public class SimpleTesting {
public static void main(String[] args) throws UnsupportedEncodingException {
String msg = "This is confidential";
System.out.println("Message before encoding: " + msg);
byte[] bytes = msg.getBytes("UTF-8");
Encoder encoder = Base64.getEncoder();
String encoded = encoder.encodeToString(bytes);
System.out.println("Message after encoding: " + encoded);
byte[] decoded = Base64.getDecoder().decode(encoded);
String decodedMsg = new String(decoded);
System.out.println("Decoded Message " + decodedMsg);
}
}
출력:
Message before encoding: This is confidential
Message after encoding: VGhpcyBpcyBjb25maWRlbnRpYWw=
Decoded Message This is confidential
Java에서 Apache Commons Codec Library를 사용한 인코딩 및 디코딩
이것은 Java에서 데이터를 인코딩 및 디코딩하는 또 다른 솔루션입니다. 여기에서는 코덱 라이브러리와 Base64
클래스를 사용하고 있습니다. decodeBase64()
메서드를 사용하여 추가로 디코딩할 수 있는 인코딩된 문자열을 반환하는 encodeBase64()
메서드를 제공합니다. 아래 예를 참조하십시오.
import java.io.UnsupportedEncodingException;
import org.apache.commons.codec.binary.Base64;
public class SimpleTesting {
public static void main(String[] args) throws UnsupportedEncodingException {
String msg = "This is confidential";
System.out.println("Message before encoding: " + msg);
byte[] bytes = msg.getBytes("UTF-8");
String encoding = new String(Base64.encodeBase64(bytes));
System.out.println("---------After Encoding-----------");
System.out.println(encoding);
// Decoding
String decoding = new String(Base64.decodeBase64(encoding));
System.out.println("---------After Decoding----------");
System.out.println(decoding);
}
}
출력:
Message before encoding: This is confidential
---------After Encoding-----------
VGhpcyBpcyBjb25maWRlbnRpYWw=
---------After Decoding----------
This is confidential
Java의 인코딩 및 디코딩 URL
시작할 때 언급했듯이 Java Base64는 URL을 인코딩 및 디코딩하는 데에도 사용할 수 있습니다. 따라서 이 예제에서는 인코딩을 위해 getUrlEncoder()
메소드를 사용하고 URL을 디코딩하기 위해 getUrlDecoder()
메소드를 사용했습니다. 아래 예를 참조하십시오.
import java.io.UnsupportedEncodingException;
import java.util.Base64;
import java.util.Base64.Encoder;
public class SimpleTesting {
public static void main(String[] args) throws UnsupportedEncodingException {
String url = "https://www.delftstack.com/";
System.out.println("Message before encoding: " + url);
byte[] bytes = url.getBytes("UTF-8");
Encoder encoder = Base64.getUrlEncoder();
String encoded = encoder.encodeToString(bytes);
System.out.println("Message after encoding: " + encoded);
// Decoding
String decoding = new String(Base64.getUrlDecoder().decode(encoded));
System.out.println("---------After Decoding----------");
System.out.println(decoding);
}
}
출력:
Message before encoding: https://www.delftstack.com/
Message after encoding: aHR0cHM6Ly93d3cuZGVsZnRzdGFjay5jb20v
---------After Decoding----------
https://www.delftstack.com/
Java의 MIME 인코딩 및 디코딩
MIME 데이터를 인코딩하기 위해 Java는 인코딩된 바이트를 반환하는 getMimeEncoder()
메서드를 제공하고 Java가 제공하는 getMimeDecoder()
메서드를 디코딩합니다. 아래 예를 참조하십시오.
import java.io.UnsupportedEncodingException;
import java.util.Base64;
import java.util.Base64.Encoder;
public class SimpleTesting {
public static void main(String[] args) throws UnsupportedEncodingException {
String msg = "This is \n confidential \n file";
System.out.println("Message before encoding: " + msg);
byte[] bytes = msg.getBytes("UTF-8");
Encoder encoder = Base64.getMimeEncoder();
String encoded = encoder.encodeToString(bytes);
System.out.println("Message after encoding: " + encoded);
// Decoding
String decoding = new String(Base64.getMimeDecoder().decode(encoded));
System.out.println("---------After Decoding----------");
System.out.println(decoding);
}
}
출력:
Message before encoding: This is
confidential
file
Message after encoding: VGhpcyBpcyAKIGNvbmZpZGVudGlhbCAKIGZpbGU=
---------After Decoding----------
This is
confidential
file