Java での base64.decode
- Base64 クラスのエンコードおよびデコードメソッド
- Java での Base64 エンコーディング
- Java での Base64 デコード
- JavaApache 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
JavaApache Commons Codec Library を使用したエンコードとデコード
これは、Java でデータをエンコードおよびデコードするためのもう 1つのソリューションです。ここでは、コーデックライブラリとその 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 のエンコードとデコード
最初に述べたように、JavaBase64 は 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