• QQ
  • nahooten@sina.com
  • 常州市九洲新世界花苑15-2

Android

Java若何举行Base64的编码(Encode)与解码(Decode)

原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/Android/2019/0627/557.html

关于base64编码Encode和Decode编码的几种方式
Base64是一种能将任意Binary材料用64种字元组合成字串的要领,而这个Binary材料和字串材料彼此之间是可以相互转换的,十分利便。在实际运用上,Base64除了能将Binary材料可视化以外,也常用来显露字串加密事后的内容。如果要运用Java 程式说话来实作Base64的编码与解码功效,可以参考本篇文章的作法。
 
早期作法
早期在Java上做Base64的编码与解码,会运用到JDK里sun.misc套件下的BASE64Encoder和BASE64Decoder这两个种别,用法以下:
 
复制代码
final BASE64Encoder encoder = new BASE64Encoder();
final BASE64Decoder decoder = new BASE64Decoder();
final String text = "字串笔墨";
final byte[] textByte = text.getBytes("UTF-8");//编码
final String encodedText = encoder.encode(textByte);
System.out.println(encodedText);
//解码System.out.println(new String(decoder.decodeBuffer(encodedText), "UTF-8"));
final BASE64Encoder encoder = new BASE64Encoder();
final BASE64Decoder decoder = new BASE64Decoder();
final String text = "字串笔墨";
final byte[] textByte = text.getBytes("UTF-8");//编码
final String encodedText = encoder.encode(textByte);
System.out.println(encodedText);//解码
System.out.println(new String(decoder.decodeBuffer(encodedText), "UTF-8"));
复制代码
 
 
 
从以上程式可以发现,在Java用Base64一点都不难,不消几路程式码就办理了!只是这个sun.mis c套件所供应的Base64功效,编码和解码的服从并不太好,并且在往后的Java版本可能就不被增援了,完全不建议运用。
 
Apache Co妹妹ons Codec作法
Apache Co妹妹ons Codec有供应Base64的编码与解码功效,会运用到org.apache.co妹妹ons.codec.binary套件下的Base64种别,用法以下:
 
复制代码
final Base64 base64 = new Base64();final String text = "字串笔墨";final byte[] textByte = text.getBytes("UTF-8");//编码final String encodedText = base64.encodeToString(textByte);
System.out.println(encodedText);//解码System.out.println(new String(base64.decode(encodedText), "UTF-8"));final Base64 base64 = new Base64();final String text = "字串笔墨";final byte[] textByte = text.getBytes("UTF-8");//编码final String encodedText = base64.encodeToString(textByte);
System.out.println(encodedText);//解码System.out.println(new String(base64.decode(encodedText), "UTF-8"));
复制代码
 
 
以上的程式码看起来又比早期用sun.mis c套件还要更精简,功用实际实行起来也快了很多。坏处是必要援用Apache Co妹妹ons Codec,很繁难。
 
Java 8往后的作法
Java 8的java.util套件中,新增了Base64的种别,可以用来处分Base64的编码与解码,用法以下:
 
复制代码
final Base64.Decoder decoder = Base64.getDecoder();final Base64.Encoder encoder = Base64.getEncoder();final String text = "字串笔墨";final byte[] textByte = text.getBytes("UTF-8");//编码final String encodedText = encoder.encodeToString(textByte);
System.out.println(encodedText);//解码System.out.println(new String(decoder.decode(encodedText), "UTF-8"));final Base64.Decoder decoder = Base64.getDecoder();final Base64.Encoder encoder = Base64.getEncoder();final String text = "字串笔墨";final byte[] textByte = text.getBytes("UTF-8");//编码final String encodedText = encoder.encodeToString(textByte);
System.out.println(encodedText);//解码System.out.println(new String(decoder.decode(encodedText), "UTF-8"));
复制代码
与sun.mis c套件和Apache Co妹妹ons Codec所供应的Base64编解码器来对照的话,Java 8供应的Base64领有更好的功用。实际测试编码与解码速度的话,Java 8供应的Base64,要比sun.mis c套件供应的还要快至少11倍,比Apache Co妹妹ons Codec供应的还要快至少3倍。是以在Java上若要运用Base64,这个Java 8下面的java .util套件所供应的Base64种别统统是首选!
 

上篇:上一篇:Android WebView加载https出现空缺页
下篇:下一篇:Android android.util.Base64应用