java8新特性探究(十一)base64详解-java开发java经验技巧

java8新特性探究(十一)base64详解-java开发java经验技巧

ID:30779756

大小:89.83 KB

页数:6页

时间:2019-01-03

java8新特性探究(十一)base64详解-java开发java经验技巧_第1页
java8新特性探究(十一)base64详解-java开发java经验技巧_第2页
java8新特性探究(十一)base64详解-java开发java经验技巧_第3页
java8新特性探究(十一)base64详解-java开发java经验技巧_第4页
java8新特性探究(十一)base64详解-java开发java经验技巧_第5页
资源描述:

《java8新特性探究(十一)base64详解-java开发java经验技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java8新特性探究(I—)Basc64详解-编程开发技术Java8新特性探究(^一)Base64详解原文出处:成熟的毛毛虫的博客BASE64编码是一种常用的字符编码,在很多地方都会用到。但base64不是安全领域卜•的加密解密算法。能起到安全作用的效杲很差,而且很容易破解,他核心作用应该是传输数据的正确性,冇些网关或系统只能使用ASCII字符。Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法,而口base64特别适合在http,mime协议下快速传输数据。JDK里面实现Base64的API在JDK1.6Z前,JDK核心类一直没冇Base

2、64的实现类,冇人建议用Sun/OracleJDK里面的sun.misc.BASE64Encoder和sun.misc.BASE64Decoder,使用它们的优点就是不需要依赖第三方类库,缺点就是可能在未来版木会被删除(用maven编译会发出警告),而且性能不佳,后面会有性能测试。JDK1.6中添加了另一个Basc64的实现,javax.xml.bind.DatatypcConvcrtcr两个静态方法parseBase64Binary和printBase64Binary,隐藏在javax.xml.bind包下面,不被很多开发者知道。在Java8在java,util

3、包下面实现了BASE64编解码APT,而且性能不俗,APT也简单易懂,下面展示下这个类的使用例子。java・util.Base64该类捉供了一套静态方法获取下而三种BASE64编解码器:1)Basic编码:是标准的BASE64编码,用于处理常规的需求//编码StringasB64二Base64.getEncoder().encodeToString(,,somestring".getBytes("utf-8"));System,out.printin(asB64);//输出为:c29tZSBzdHJpbmc=//解码byte[]asBytes二Base64.get

4、Decoder().decode(,zc29tZSBzdHJpbmc=/z);System,out.printin(newString(asBytes,〃utf-8〃));//输出为:somestring2)URL编码:使用下划线替换URL里面的反斜线“/”StringurlEncoded=Base64.getUrlEncoder().encodeToStrin名("subjects?abccT.getBvtes(z,utf-8〃));System,out.printin(^UsingURLAlphabet:"+urlEncoded);//输出为:UsingURL

5、Alphabet:c3ViamVjdHM_YWJjZA==1)MIME编码:使用基木的字母数字产生BASE64输出,而且对MIME格式友好:每一行输出不超过76个字符,而且每行以“r”符结束。StringBuiIdersb二newStringBuilder();for(intt二0;t〈10;++t){sb.append(UU1D.randomUUlDO.toString());}byte[]toEncode二sb.toString().getBytes(〃utf-8〃);StringmimeEncoded=Base64.getMimeEncoder().e

6、ncodeToString(toEncode);System,out.printin(mimeEncoded);第三方实现Base64的API首先便是常用的ApacheCommonsCodeclibrary里面的org.apache,commons,codec,binary.Base64;第二个便是GoogleGuava库里面的com.google・common.io.BascEncoding.basc64()这彳、静态方法;第三个是net.iharder.Base64,这个jar包就一个类;最后一个,号称Base64编码速度最快的MigBase64,而且是10年

7、前的实现,到现在是否能保持这个称号,测一测便知道;Base64编码性能测试上而讲了一共7种实现Base64编码,Jdk里而3种,第三方实现4种,一旦冇选择,则有必要将他们进行一次高低对比,性能测试是最直接的方式首先来定义两个接口privatestaticinterfaceBase64CodecpublicStringencode(finalbyte[]data);publicbyte[]decode(finalStringbase64)throwsIOException;privatestaticinterfaceBase64ByteCodec{publicbyt

8、e[]en

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。