Java8 新增BASE64加解密API
2024-10-21 17:23:07
什么是Base64编码?
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法 基于64个字符A-Z,a-z,0-9,+,/的编码方式,
是一种能将任意二进制数据用64种字元组合成字符串串的方法,而这个二进制数据和字符串串资料料之间是可以互相转换的,在实际应用上,Base64除了了能将二进制数据可视化之外,
也常用来表示字串串加密过后的内容
1.早期java要中使用Base64
-使用JDK里里sun.misc套件下的BASE64Encoder和BASE64Decoder这两个类
BASE64Encoder encoder = new BASE64Encoder();
BASE64Decoder decoder = new BASE64Decoder();
String text = "湖南省长沙市";
byte[] textByte = text.getBytes("UTF-8");
//编码
String encodedText = encoder.encode(textByte);
System.out.println(encodedText);
//解码
System.out.println(new String(decoder.decodeBuffer(encodedText),
"UTF-8"));
缺点:编码和解码的效率⽐比较差,公开信息说以后的版本会取消这个方法
Apache Commons Codec有提供Base64的编码与解码 缺点:是需要引用Apache Commons Codec
2.JDK8之后使用API
Jdk1.8的java.util包中,新增了了Base64的类
好处:不用引包,编解码销量量远⼤大于 sun.misc 和 Apache Commons Codec
Base64.Decoder decoder = Base64.getDecoder();
Base64.Encoder encoder = Base64.getEncoder();
String text = "湖南省长沙市";
byte[] textByte = text.getBytes("UTF-8");
//编码
String encodedText = encoder.encodeToString(textByte);
System.out.println(encodedText);
//解码
System.out.println(new String(decoder.decode(encodedText), "UTF-
8"));
最新文章
- Java集合之LinkedList
- Node.js 手册查询-3-Mongoose 方法
- hdoj 1874 畅通工程续
- @Html.Partials 加载分布视图传参数
- maven加载spring包
- 带不带protype的区别
- 安装Nginx+uWSGI+Django环境
- mysql 加入列,改动列,删除列。
- iOS 通知中心 NSNotificationCenter
- 基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
- java新手笔记8 包
- 一元云购完整源码 云购CMS系统 带安卓和ios手机客户端
- 再来一个学历重要性讨论——QQ技术群聊
- Android乐学成语之自定义Adapter
- margin负值-内秀篇
- [系统集成] 基于telegraf, influxdb, grafana 建立 esxi 监控
- linux(centos7)设置tomcat开机启动
- 世界各国GDP动态排名可视化实现(基于d3.js)
- openshift 容器云从入门到崩溃之八《日志聚合》
- datatable to entiy list 不支持可空类型和枚举类型