文档章节

Groovy中 Base64 URL和文件名安全编码

白石
 白石
发布于 08/19 15:05
字数 285
阅读 36
收藏 0

Base64 URL和文件名安全编码

Groovy支持Base64编码很长一段时间。 从Groovy 2.5.0开始,我们还可以使用Base64 URL和Filename Safe编码来使用encodeBase64Url方法对字节数组进行编码。 结果是一个Writable对象。 我们可以在Writable对象上调用toString方法来获得String值。 可以使用添加到String类的decodeBase64Url方法使用相同的编码对编码的String值进行解码。

在下面的示例Groovy代码中,我们对字节数组进行编码和解码:

import static java.nio.charset.StandardCharsets.UTF_8
 
def message = 'Groovy rocks!'
 
// Get bytes array for String using UTF8.
def messageBytes = message.getBytes(UTF_8)
 
// Encode using Base64 URL and Filename encoding.
def messageBase64Url = messageBytes.encodeBase64Url().toString()
 
// Encode using Base64 URL and Filename encoding with padding.
def messageBase64UrlPad = messageBytes.encodeBase64Url(true).toString()
 
assert messageBase64Url == 'R3Jvb3Z5IHJvY2tzIQ'
assert messageBase64UrlPad == 'R3Jvb3Z5IHJvY2tzIQ=='
 
// Decode the String values.
assert new String(messageBase64Url.decodeBase64Url()) == 'Groovy rocks!'
assert new String(messageBase64UrlPad.decodeBase64Url()) == 'Groovy rocks!'

用Groovy 2.5.0编写。

© 著作权归作者所有

白石

白石

粉丝 67
博文 51
码字总数 102811
作品 1
海淀
程序员
私信 提问
使用证书在WEB服务器上设置SSL(下)

7.提交证书申请: 使用IE浏览器打开本地WEB站点进入证书申请页面,如下: 选择申请证书 选择"高级证书申请": 在提交一个证书申请中选择后者"BASE64编码的证书申请": 此时弹出文本框让输入内容:...

技术小阿哥
2017/11/14
0
0
SLICE30K/Base64.js

Base64.js 如果这个项目对你有帮助或者你觉得这个项目还不错的话,给点个星呗! 简介 虽然JavaScript中可以使用原生的btoa和atob函数进行Base64的编解码。但是不支持中文字符,并且不支持url...

SLICE30K
2017/05/22
0
0
Java8 BASE64编解码

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

秋风醉了
2015/04/02
1K
0
JavaWeb多种乱码解决方法

一、Servlet输出乱码 1. 用servlet.getOutStream字节流输出中文,假设要输出的是String str ="***是中国的,无耻才是日本的"。 1.1 若是本地服务器与本地客户端这种就不用说了,直接可以out...

liangtee
2012/10/03
370
2
Base64压缩UUID长度替换Hibernate原有UUID生成器

1、背景 在采用Hibernate做对象映射时,我一直都采用UUID来做主键。由于Hibernate的UUID需要占用32位的字符,所以一般都会让人感觉响效率且增加存储占用。 我在查看公司项目时发现了一种比较...

NoahX
2013/05/20
7.1K
13

没有更多内容

加载失败,请刷新页面

加载更多

二叉查找树的第 K 个结点

private TreeNode ret;private int cnt = 0;public TreeNode KthNode(TreeNode pRoot, int k) { inOrder(pRoot, k); return ret;}private void inOrder(TreeNode root......

Garphy
今天
4
0
windo8 weblogic

需要的软件包 现在安装jdk 则先进入你电脑自带jdk \bin目录下 然后java -jar 执行你的jar包就可以了 欢迎界面直接点击下一步,跳到更新界面,直接选择跳过 然后选择安装目录(注意:目录不要有...

恩多
今天
8
0
Activiti 批注

Activiti添加批注(comment)信息 在每次提交任务的时候需要描述一些批注信息,例如:请假流程提交的时候要描述信息为什么请假,如果领导驳回可以批注驳回原因等  1、添加批注 // 由于流程...

奔跑的android
今天
4
0
centos7命令行和图形界面的相互切换

最近安装了centos7,发现在命令行和图形界面的相互切换命令上,与centos以往版本有很大不同。 1,centos7默认安装后,跟其他版本一样,启动默认进入图形界面; 2,在图形化桌面,右击鼠标,选...

无名氏的程序员
今天
6
0
快速失败 (fail-fast) 和安全失败 (fail-safe) 的区别是什么

一:快速失败(fail—fast) 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除、修改),则会抛出Concurrent Modification Exception。 原理:迭代器在...

Bb进阶
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部