*一、JDK1.6(javax.xml包)实现Base64编码解码
import javax.xml.bind.DatatypeConverter;
import org.junit.Test;
public class Jdk6Base64Test {
/**
* JDK1.6(javax.xml包)实现Base64编码解码
*/
@Test
public void testBase64ByJDK6() throws Exception{
String sourceData = "这是Base64编码前的原始数据!!!";
byte[] bytes = sourceData.getBytes();
// Base64编码
String base64Encode = DatatypeConverter.printBase64Binary(bytes);
System.out.println(base64Encode);//6L+Z5pivQmFzZTY057yW56CB5YmN55qE5Y6f5aeL5pWw5o2u77yB77yB77yB
// Base64解码
byte[] parseBase64Binary = DatatypeConverter.parseBase64Binary(base64Encode);
String base64Dncode = new String(parseBase64Binary, "utf-8");
System.out.println(base64Dncode);//这是Base64编码前的原始数据!!!
}
}
二、Java 8(java.util包)实现Base64编码解码
import java.util.Base64;//注意:这是jdk8才有的
import org.junit.Test;
public class Jdk8Base64Test {
/**
* Java 8(java.util包)实现Base64编码解码
* @throws Exception
*/
@Test
public void test2() throws Exception{
String sourceData = "这是Base64编码前的原始数据!!!";
byte[] bytes = sourceData.getBytes();
// 编码
String asB64 = Base64.getEncoder().encodeToString(bytes);
System.out.println(asB64); //6L+Z5pivQmFzZTY057yW56CB5YmN55qE5Y6f5aeL5pWw5o2u77yB77yB77yB
// 解码
byte[] asBytes = Base64.getDecoder().decode(asB64);
System.out.println(new String(asBytes, "utf-8")); //这是Base64编码前的原始数据!!!
}
}
三、JDK(sun.misc包)实现Base64编码解码
import java.io.IOException;
import org.junit.Test;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
@SuppressWarnings("restriction")
public class JDKsunBase64 {
/**
* JDK(sun.misc包)实现Base64编码解码
*/
@Test
public void test() throws IOException{
String sourceData = "这是Base64编码前的原始数据!!!";
String encode = new BASE64Encoder().encode(sourceData.getBytes());
System.out.println("编码结果:" + encode);//6L+Z5pivQmFzZTY057yW56CB5YmN55qE5Y6f5aeL5pWw5o2u77yB77yB77yB
String decode = new String(new BASE64Decoder().decodeBuffer(encode));
System.out.println("解码结果:" + decode);
}
}
四、Apache Commons Codec实现Base64编码解码
1、maven依耐:
<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.10</version>
</dependency>
2、示例代码:
import org.apache.commons.codec.binary.Base64;
import org.junit.Test;
public class ApacheCommonsCodecBase64Test {
/**
* Apache Commons Codec实现Base64编码解码
*/
@Test
public void test3() {
String sourceData = "这是Base64编码前的原始数据!!!";
System.out.println("原始数据:" + sourceData);
// 编码
String encodeString = new String(new Base64().encode(sourceData.getBytes()));
System.out.println("编码结果:" + encodeString);//6L+Z5pivQmFzZTY057yW56CB5YmN55qE5Y6f5aeL5pWw5o2u77yB77yB77yB
// 解码
String decodeString = new String(new Base64().decode(encodeString.getBytes()));
System.out.println("解码结果:" + decodeString);
}
}