前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java Base64加密与解密示例代码

Java Base64加密与解密示例代码

作者头像
雾海梦曦
发布2023-03-03 14:18:01
1.2K0
发布2023-03-03 14:18:01
举报
文章被收录于专栏:博客屋博客屋

基本的加密尽量保持简单,加密输入字符串没有增加任何换行符。输出被映射到“A-Za-z0-9+/”字符集中,解密从该字符集中解析为任意字符,这篇文章主要介绍了Java Base64 加密与解密,需要的朋友可以参考下!

一、Java 8 基本 Base64

基本的加密尽量保持简单,加密输入字符串没有增加任何换行符。输出被映射到“A-Za-z0-9+/”字符集中,解密从该字符集中解析为任意字符

加密一个简单字符串,代码如下:

代码语言:javascript
复制
String originalInput = "test input";
String encodedString = Base64.getEncoder().encodeToString(originalInput.getBytes());

解密代码如下:

代码语言:javascript
复制
byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
String decodedString = new String(decodedBytes);

二、Java 8 URL 加密

URL加密和上述基本加密类似,它使用URL和文件名安全Base64字母表(没有‘+’和‘/’,增加‘-’和‘_’),不添加任何换行隔,代码如下:

代码语言:javascript
复制
String originalUrl = "https://www.google.co.nz/?gfe_rd=cr&ei=dzbFV&gws_rd=ssl#q=java";
String encodedUrl = Base64.getUrlEncoder().encodeToString(originalURL.getBytes());

解密方式一致--getUrlDecoder() 工具方法返回java.util.Base64.Decoder ,然后解密URL,代码如下:

代码语言:javascript
复制
byte[] decodedBytes = Base64.getUrlDecoder().decode(encodedUrl);
String decodedUrl = new String(decodedBytes);

三、Java 8 MIME(Multipurpose Internet Mail Extensions) 加密

首先生成一些基本MIME输入数据用于加密:

代码语言:javascript
复制
private static StringBuilder getMimeBuffer() {
StringBuilder buffer = new StringBuilder();
for (int count = 0; count < 10; ++count) {
buffer.append(UUID.randomUUID().toString());
}
return buffer;
}

MIME加密工具生成Base64加密输出,输出被映射到“A-Za-z0-9+/”字符集中,编码输出必须以每行不超过76个字符的形式表示,并使用后面跟着的回车符’\r’和换行符’\n’为分隔符,代码如下:

代码语言:javascript
复制
StringBuilder buffer = getMimeBuffer();
byte[] encodedAsBytes = buffer.toString().getBytes();
String encodedMime = Base64.getMimeEncoder().encodeToString(encodedAsBytes);

getMimeDecoder() 工具方法返回java.util.Base64.Decoder 用于解密过程:

代码语言:javascript
复制
byte[] decodedBytes = Base64.getMimeDecoder().decode(encodedMime);
String decodedMime = new String(decodedBytes);

四、总结

本文介绍了java中Base64加密和解密的基本用法,使用java 8 新引入的API。另外还有其他库实现类似功能--java.xml.bind.DataTypeConverter 提供的 printHexBinary 和 parseBase64Binary。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Java 8 基本 Base64
  • 二、Java 8 URL 加密
  • 三、Java 8 MIME(Multipurpose Internet Mail Extensions) 加密
  • 四、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档