Base64的编解码
Base64编码是将字节数组编码为可以打印的字符数组,解码是将Base64的字符数组还原为原字节数组。
1.8之前,我们一般可以使用 sun.misc.BASE64Encoder
和sun.misc.BASE64Decoder
来进行Base64的编解码,但是这个API是sun公司的专用API,可能在未来发行版中删除,一般在IDE中都有警告或者报错,编译的时候也会警告。所以我们一般还会使用apache的commons-codec包中的org.apache.commons.codec.binary.Base64
,在1.8中JDK提供了原生的Base64编解码器java.util.Base64.getEncoder()
和java.util.Base64.getDecoder()
,这些都可以完美替换掉专用的API。
下面给出示例代码:
public static void main(String[] args) throws Exception{byte[] ss = new byte[]{1,2,3,4,5,6,7,8,9,0,-23,23,21,-128,127};byte[] encodeBase64 = org.apache.commons.codec.binary.Base64.encodeBase64(ss);print(encodeBase64);System.out.println(new String(encodeBase64));byte[] decodeBase64 = org.apache.commons.codec.binary.Base64.decodeBase64(encodeBase64);print(decodeBase64);System.out.println("-----------------------------");String encode = new sun.misc.BASE64Encoder().encode(ss);System.out.println(encode);byte[] bytes = new sun.misc.BASE64Decoder().decodeBuffer(encode);print(bytes);System.out.println("-----------------------------");byte[] bytes1 = java.util.Base64.getEncoder().encode(ss);print(bytes1);String x = new String(bytes1);System.out.println(x);byte[] decode = java.util.Base64.getDecoder().decode(x);print(decode);}private static void print(byte[] c){if(org.apache.commons.codec.binary.Base64.isBase64(c)){for (int i = 0; i < c.length; i++) {System.out.print((char)c[i]+"-");}}else {for (int i = 0; i < c.length; i++) {System.out.print(c[i]+"-");}}System.out.println();}
Base64的编解码相关推荐
- [NodeJs] 如何使用nodejs对base64进行编解码?
[NodeJs] 如何使用nodejs对base64进行编解码? const str = 'hi'//编码 const buff = Buffer.from(str, 'utf-8') console ...
- 【开源项目】C++BASE64图像编解码算法
ZBase64.h #pragma once #include <string> using namespace std; class ZBase64 { public:ZBase64(v ...
- Go 学习笔记(41)— Go 标准库之 encoding/base64 (编解码)
1. 简要概述 Base64 是网络上最常见的用于传输 8Bit 字节码的编码方式之一, Base64 就是一种基于 64 个可打印字符来表示二进制数据的方法. Base64 编码是从二进制到字符的过 ...
- Base64编码,Base64在线编解码
在线工具https://oktools.net Base64编码https://oktools.net/base64 JSON格式化https://oktools.net/json Unix时间戳ht ...
- 通过OpenSSL的接口实现Base64编解码
对openssl genrsa产生的rsa私钥pem文件,使用普通的base64解码会有问题,如使用https://blog.csdn.net/fengbingchun/article/details ...
- Android实战技巧之三十七:图片的Base64编解码
通经常使用Base64这样的编解码方式将二进制数据转换成可见的字符串格式,就是我们常说的大串.10块钱一串的那种,^_^. Android的android.util包下直接提供了一个功能十分完备的Ba ...
- C++实现Base64编解码并应用于图片传输
前言 最近接触的项目有一个小功能是在服务器(C++)和客户端(Python)之间传输图片,开始这部分是由另外一位同学完成的.但由于服务器是用C++写的,他不是很熟悉,所以让我来完成这部分功能.在项目中 ...
- ubuntu下c++中base64编解码测试和图片编解码测试
全栈工程师开发手册 (作者:栾鹏) 架构系列文章 字符数组的base64编解码 base64.h #include <string>std::string base64_encode(un ...
- MSDK手Q邀请透传参数问题:url编解码与base64编解码
最近做MSDK手Q的邀请功能,遇到一个坑,手Q结构化消息分享功能接口如下: /*** @param scene 标识发送手Q会话或者Qzone* eQQScene.QQScene_QZone: 分享到 ...
最新文章
- linux下安装sbt_如何在Linux上安装SBT
- 「薅」52图初探Linux通用知识
- 用友登录控件Vbs脚本
- 高效JQuery编码
- 深度学习框架的介绍与比较(Caffe, TensorFlow, MXNet, Torch, Theano)
- tableau certificate
- POJ - 1094 Sorting It All Out(拓扑排序+floyd传递闭包)
- WPF入门教程系列四——Dispatcher介绍
- Android_Layout (一)
- C#输入框InputBox问题
- java授查 非授查异常_java检查异常与非检查异常
- 在RH6.5上安装sublime3 build3103步骤
- PHP 使用mysqli与MySQL交互
- 谈谈数据传输中的安全性
- 对色情app渗透,我居然发现了 ....
- Keil5窗口的背景保护色设置
- Java代码调用第三方接口发送短信
- python语言程序设计王小银_Python语言程序设计答案
- 【HarmonyOS HiSpark IPC DIY Camera试用连载2 】一天内极速完成从开箱编译烧写到跑通hello world
- 2022秋招蚂蚁金服数据研发一面
热门文章
- HTML5期末大作业:动漫网站设计—— 动漫电影《你的名字》(7页)带音乐特效 HTML+CSS+JavaScript
- vue 之 ie的 司马兼容性问题
- 7-2 旅游规划 (20 分)c语言,浙江省2008年7月高等教育自学考试旅游资源规划与开发A卷2...
- 人物简介怎么上传到百度上,怎么创建自己的百度百科词条
- 电脑空闲状态,鼠标长时间无人操作后电脑自动关机软件
- 搞混两种检测:美国疾控中心怎么会犯这样的错?
- 高级 Java 面试必问的三大 IO 模型,你 get 了吗?
- SF1004-MHCHXM超快恢复二极管SF1004
- java子类调用父类变量值_java子类如何调用父类变量和方法
- breakall lisp文件_dwg导入SU的准备工作