Base64编码是将字节数组编码为可以打印的字符数组,解码是将Base64的字符数组还原为原字节数组。

1.8之前,我们一般可以使用 sun.misc.BASE64Encodersun.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的编解码相关推荐

  1. [NodeJs] 如何使用nodejs对base64进行编解码?

    [NodeJs] 如何使用nodejs对base64进行编解码? const str = 'hi'//编码 const buff = Buffer.from(str, 'utf-8') console ...

  2. 【开源项目】C++BASE64图像编解码算法

    ZBase64.h #pragma once #include <string> using namespace std; class ZBase64 { public:ZBase64(v ...

  3. Go 学习笔记(41)— Go 标准库之 encoding/base64 (编解码)

    1. 简要概述 Base64 是网络上最常见的用于传输 8Bit 字节码的编码方式之一, Base64 就是一种基于 64 个可打印字符来表示二进制数据的方法. Base64 编码是从二进制到字符的过 ...

  4. Base64编码,Base64在线编解码

    在线工具https://oktools.net Base64编码https://oktools.net/base64 JSON格式化https://oktools.net/json Unix时间戳ht ...

  5. 通过OpenSSL的接口实现Base64编解码

    对openssl genrsa产生的rsa私钥pem文件,使用普通的base64解码会有问题,如使用https://blog.csdn.net/fengbingchun/article/details ...

  6. Android实战技巧之三十七:图片的Base64编解码

    通经常使用Base64这样的编解码方式将二进制数据转换成可见的字符串格式,就是我们常说的大串.10块钱一串的那种,^_^. Android的android.util包下直接提供了一个功能十分完备的Ba ...

  7. C++实现Base64编解码并应用于图片传输

    前言 最近接触的项目有一个小功能是在服务器(C++)和客户端(Python)之间传输图片,开始这部分是由另外一位同学完成的.但由于服务器是用C++写的,他不是很熟悉,所以让我来完成这部分功能.在项目中 ...

  8. ubuntu下c++中base64编解码测试和图片编解码测试

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 字符数组的base64编解码 base64.h #include <string>std::string base64_encode(un ...

  9. MSDK手Q邀请透传参数问题:url编解码与base64编解码

    最近做MSDK手Q的邀请功能,遇到一个坑,手Q结构化消息分享功能接口如下: /*** @param scene 标识发送手Q会话或者Qzone* eQQScene.QQScene_QZone: 分享到 ...

最新文章

  1. linux下安装sbt_如何在Linux上安装SBT
  2. 「薅」52图初探Linux通用知识
  3. 用友登录控件Vbs脚本
  4. 高效JQuery编码
  5. 深度学习框架的介绍与比较(Caffe, TensorFlow, MXNet, Torch, Theano)
  6. tableau certificate
  7. POJ - 1094 Sorting It All Out(拓扑排序+floyd传递闭包)
  8. WPF入门教程系列四——Dispatcher介绍
  9. Android_Layout (一)
  10. C#输入框InputBox问题
  11. java授查 非授查异常_java检查异常与非检查异常
  12. 在RH6.5上安装sublime3 build3103步骤
  13. PHP 使用mysqli与MySQL交互
  14. 谈谈数据传输中的安全性
  15. 对色情app渗透,我居然发现了 ....
  16. Keil5窗口的背景保护色设置
  17. Java代码调用第三方接口发送短信
  18. python语言程序设计王小银_Python语言程序设计答案
  19. 【HarmonyOS HiSpark IPC DIY Camera试用连载2 】一天内极速完成从开箱编译烧写到跑通hello world
  20. 2022秋招蚂蚁金服数据研发一面

热门文章

  1. HTML5期末大作业:动漫网站设计—— 动漫电影《你的名字》(7页)带音乐特效 HTML+CSS+JavaScript
  2. vue 之 ie的 司马兼容性问题
  3. 7-2 旅游规划 (20 分)c语言,浙江省2008年7月高等教育自学考试旅游资源规划与开发A卷2...
  4. 人物简介怎么上传到百度上,怎么创建自己的百度百科词条
  5. 电脑空闲状态,鼠标长时间无人操作后电脑自动关机软件
  6. 搞混两种检测:美国疾控中心怎么会犯这样的错?
  7. 高级 Java 面试必问的三大 IO 模型,你 get 了吗?
  8. SF1004-MHCHXM超快恢复二极管SF1004
  9. java子类调用父类变量值_java子类如何调用父类变量和方法
  10. breakall lisp文件_dwg导入SU的准备工作