文档章节

Java8 Base64

游动的海蜇
 游动的海蜇
发布于 2017/01/28 18:36
字数 339
阅读 33
收藏 0

一、基本知识

Java8现在有内置编码器和解码器的Base64编码。

在Java8中,我们可以使用以下三种类型的Base64编码:

  • 基本 - 输出映射设置字符在A-ZA-Z0-9+/(编码器不添加任何换行输出和解码器拒绝在A-Za-z0-9+/以外的任何字符)。
  • URL - 输出映射设置字符在A-Za-z0-9+_(输出URL和文件名安全)。
  • MIME - 输出映射到MIME友好的格式(输出表示在每次不超过76个字符行和使用'\r'后跟一个换行符'\n'回车作为行分隔符)。

二、使用示例

测试类:

/**
 * Java8 Base64 测试
 *
 * @author Kevin
 * @date 2017-01-28
 */
public class Base64Test {

    public static void main(String args[]) {
        try {
            String content = "www.google.com?java8";
            System.out.println("编码前的内容: " + content);

            // 编码
            String base64EncodedString = Base64.getEncoder().encodeToString(content.getBytes("utf-8"));
            System.out.println("Base64 Encoded String (Basic) :" + base64EncodedString);

            // 解码
            byte[] base64DecodedBytes = Base64.getDecoder().decode(base64EncodedString);
            System.out.println("Base64 Decoded String (Basic) : " + new String(base64DecodedBytes, "utf-8"));

            base64EncodedString = Base64.getUrlEncoder().encodeToString(content.getBytes("utf-8"));
            System.out.println("Base64 Encoded String (URL) :" + base64EncodedString);

            StringBuilder stringBuilder = new StringBuilder();
            for (int i = 0; i < 6; i++) {
                stringBuilder.append(content);
            }

            byte[] mimeBytes = stringBuilder.toString().getBytes("utf-8");
            String mimeEncodedString = Base64.getMimeEncoder().encodeToString(mimeBytes);
            System.out.println("Base64 Encoded String (MIME) :" + mimeEncodedString);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }

}

运行结果:

编码前的内容: www.google.com?java8
Base64 Encoded String (Basic) :d3d3Lmdvb2dsZS5jb20/amF2YTg=
Base64 Decoded String (Basic) : www.google.com?java8
Base64 Encoded String (URL) :d3d3Lmdvb2dsZS5jb20_amF2YTg=
Base64 Encoded String (MIME) :d3d3Lmdvb2dsZS5jb20/amF2YTh3d3cuZ29vZ2xlLmNvbT9qYXZhOHd3dy5nb29nbGUuY29tP2ph
dmE4d3d3Lmdvb2dsZS5jb20/amF2YTh3d3cuZ29vZ2xlLmNvbT9qYXZhOHd3dy5nb29nbGUuY29t
P2phdmE4

####三、参考文章 1.Java8 Base64(http://www.yiibai.com/java8/java8_base64.html)

© 著作权归作者所有

游动的海蜇
粉丝 9
博文 121
码字总数 33636
作品 0
杭州
程序员
私信 提问
RSA加密解密以后验签等操作笔记

RSA加密解密以后验签等操作笔记。留着方便自己方查找。 执行结果如下: 这个就把RSA的常规使用放在这里方便以后查找。 这个把Base64换成java8的base64了,如下:

独钓渔
2016/01/19
182
0
Java8 BASE64编解码

Java8 BASE64编解码 Base64是一种用64个字符来表示任意二进制数据的方法。 Base64是一种最常见的二进制编码方法。 Java一直缺少BASE64编码 API,以至于通常在项目开发中会选用第三方的API...

秋风醉了
2015/04/02
1K
0
base64库

java8里面的java.util.Base64 java6中隐藏很深的javax.xml.bind.DatatypeConverter Apache Commons Codec library里面的org.apache.commons.codec.binary.Base64...

kaixin651
2018/03/15
19
0
Java8-初识Lambda

廉颇老矣,尚能饭否 Java,这位已经20多岁的编程语言,称得上是编程语言界的老大哥了。他曾经攻城略地,碾压各路编程语言小弟,风光无限,不可一世。现在,也是家大业大,江湖地位,很难撼动...

Jackie_Zheng
2017/09/17
0
0
Groovy 2.5.0 发布,JVM 动态脚本语言

Apache Groovy 2.5.0 已发布。此版本包含大量修复和依赖更新,并包含以下新特性: [GROOVY-6744] - Have the elvis operator (?:) support the Optional type in Java 8 [GROOVY-7089] - Bas......

淡漠悠然
2018/05/31
1K
6

没有更多内容

加载失败,请刷新页面

加载更多

Netty整合Protobuffer

现在我们都知道,rpc的三要素:IO模型,线程模型,然后就是数据交互模型,即我们说的序列化和反序列化,现在我们来看一下压缩比率最大的二进制序列化方式——Protobuffer,而且该方式是可以跨...

算法之名
16分钟前
10
0
如何用C++实现栈

栈的定义 栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压...

BWH_Steven
35分钟前
3
0
编程作业20190210900169

1编写一个程序,提示用户输入名和姓,然后以“名,姓”的格式打印出来。 #include <stdio.h>#include <stdlib.h> int main(){ char firstName[20]; char lastName[20]; print......

1李嘉焘1
47分钟前
6
0
补码的优点及原理分析

只讨论整数 1.计算机内部为什么没有减法器? 减法运算本身其实就是加法,如x - y即x +(-y),所以只需要将负数成功表示出来并可以参加加法运算,那加法器就可同时实现“+”和“-”的运算。这...

清自以敬
今天
76
0
Docker 可视化管理 portainer

官网安装指南: https://portainer.readthedocs.io/en/latest/deployment.html docker-compose.yml 位置,下载地址:https://downloads.portainer.io/docker-compose.yml...

Moks角木
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部