Java BASE64编码解码纪要
package cn.api.code;import org.apache.commons.codec.binary.Base64;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;/*** BASE64编码解码API*/public class CodeEncodeApi {public static void main(St
·
package cn.api.code;
import cn.out.utils.code.Decode;
import cn.out.utils.code.Encode;
import org.apache.commons.codec.binary.Base64;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/**
* base64编码解码API
*
* base64变码有如下三种方式
* 1. 早期的sun.misc包下提供了一种.
* 2. Apache commons也提供了一种.
* 3. JDK 1.8 后也出了一种用来实现base64的编解码方式,效率比上面提到的两者更优
*
* 下面是对应的实现Api
*/
public class CodeEncodeApi {
public static void main(String[] args) throws Exception {
// last sun.misc(早期的编解码)
BASE64Encoder base64Encoder = new BASE64Encoder();
BASE64Decoder base64Decoder = new BASE64Decoder();
String target = "中文, English, ....";
byte[] bytes = target.getBytes("UTF-8");
// 编码
String encode = base64Encoder.encode(bytes);
System.out.println(encode);
// 解码
byte[] decodeBuffer = base64Decoder.decodeBuffer(encode);
String str = new String(decodeBuffer, "UTF-8");
System.out.println(str);
// Apache commons codec(Apache commons下的编解码)
Base64 base64 = new Base64();
// 编码
String encode1 = base64.encodeToString(bytes);
System.out.println(encode1);
// 解码
byte[] decode = base64.decode(encode1);
String str1 = new String(decode, "UTF-8");
System.out.println(str1);
// after JDK 1.8(JDK1.8之后的编解码)
// 编码
java.util.Base64.Encoder encoder = java.util.Base64.getEncoder();
String encode2 = encoder.encodeToString(bytes);
System.out.println(encode2);
// 解码
java.util.Base64.Decoder decoder = java.util.Base64.getDecoder();
byte[] decode1 = decoder.decode(encode2);
String str2 = new String(decode1, "UTF-8");
System.out.println(str2);
// 效率上JDK1.8之后的编解码要远远优于以往的编解码方式.建议使用.
System.out.println("-----------------");
// change
Encode encode3 = new Encode();
System.out.println(encode3.encode(target));
Decode decode3 = new Decode();
System.out.println(decode3.decode(target));
}
}
package cn.out.utils.code;
import java.util.Base64;
public class Encode {
final Base64.Encoder encoder = Base64.getEncoder();
public String encode(String target) throws Exception {
byte[] bytes = target.getBytes("UTF-8");
return encoder.encodeToString(bytes);
}
}
package cn.out.utils.code;
import java.util.Base64;
public class Decode {
final Base64.Decoder decoder = Base64.getDecoder();
public String decode(String target) throws Exception {
byte[] bytes = target.getBytes("UTF-8");
byte[] decode = decoder.decode(bytes);
return new String(decode, "UTF-8");
}
}
更多推荐
所有评论(0)