Java Base64 加密与解密
一、Java 8 基本 Base64
基本的加密尽量保持简单,加密输入字符串没有增加任何换行符。输出被映射到“A-Za-z0-9+/”字符集中,解密从该字符集中解析为任意字符
加密一个简单字符串,代码如下:
String originalInput = "test input";
String encodedString = Base64.getEncoder().encodeToString(originalInput.getBytes());
解密代码如下:
byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
String decodedString = new String(decodedBytes);
二、Java 8 URL 加密
URL加密和上述基本加密类似,它使用URL和文件名安全Base64字母表(没有‘+’和‘/’,增加‘-’和‘_’),不添加任何换行隔,代码如下:
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,代码如下:
byte[] decodedBytes = Base64.getUrlDecoder().decode(encodedUrl);
String decodedUrl = new String(decodedBytes);
三、Java 8 MIME(Multipurpose Internet Mail Extensions) 加密
首先生成一些基本MIME输入数据用于加密:
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’为分隔符,代码如下:
StringBuilder buffer = getMimeBuffer();
byte[] encodedAsBytes = buffer.toString().getBytes();
String encodedMime = Base64.getMimeEncoder().encodeToString(encodedAsBytes);
getMimeDecoder() 工具方法返回java.util.Base64.Decoder 用于解密过程:
byte[] decodedBytes = Base64.getMimeDecoder().decode(encodedMime);
String decodedMime = new String(decodedBytes);
四、总结
本文介绍了java中Base64加密和解密的基本用法,使用java 8 新引入的API。
另外还有其他库实现类似功能——java.xml.bind.DataTypeConverter 提供的 printHexBinary 和 parseBase64Binary。
Java Base64 加密与解密相关推荐
- java base64加密与解密
目录 前言 一.base64加密与解密 1. base64有填充的编码与解码 2. base64无填充的编码与解码 二.MIME友好型base64加密与解密 前言 Base64 编码会将字符串编码得到 ...
- JAVA各种加密与解密方式
之前有兴趣研究了一下java的加密与解密的方法,发现市面上有好多种加密解密方式,在这里整理了一下. 目录 1.BASE64加密/解密 2.MD5(Message Digest Algorithm)加密 ...
- Base64加密与解密使用(+拓展:盐值法)
1.什么是Base64 Base64是一种直接利用64位可打印字符来表示二进制数据的算法,是一种比较常见的加密算法.JDK1.8版本提供了java.util.Base64的工具类,使用Base64提供 ...
- php cookie 加密解密,php 使用base64加密、解密cookie的示例
这篇文章主要为大家详细介绍了php 使用base64加密.解密cookie的示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编罗X来看看吧. 经测试代码如下: ...
- python中base64加密和解密
base64加密和解密有点头疼,必须要记录下来,以后忘了也能再来复习下 当然啦,能一直记住是最好的-加油吧,少年(其实已经好老了) 操作环境 win10,python3 base的原理 这个还是别人讲 ...
- Javascript Base64加密与解密
Base64加密与解密 Base64.js function Base64() {// private property_keyStr = "ABCDEFGHIJKLMNOPQRSTUVWX ...
- shell脚本:base64加密、解密字符串并赋值给变量方法
几经波折才能够实现使用 base64 加密.解密字符串并赋值给变量.网上绝大多数是使用 echo 管道实现 加密和解密字符串的输出. 代码如下: pwd=$( base64 -d <<&l ...
- Java Base64 加密解密 (数据加密或解决手机Emoji表情被数据库过滤掉的问题)
2017年06月08日 10:15:19 glimmer_it 阅读数:359更多 个人分类: 安全加密 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.ne ...
- Java base64加密解密 两种实现方式
1.为什么要使用Base 64 Base 64主要用途不是加密,而是把一些二进制数转成普通字符,方便在网络上传输. 由于一些二进制字符在传输协议中属于 控制字符,不能直接传送,所以需要转换一下才可以. ...
- Base64加密与解密
Base64是jdk1.8新增的加密处理类,Base64处理,在这个类里面有两个内部类 Base64.Encoder :进行加密处理 public byte[] encode(byte[] src ...
最新文章
- python安装pillow模块错误
- php序列化数据无法反解析,PHP-反序列化数据不起作用
- Hbase 学习(三)Coprocessors
- nginx 禁止通过IP,未绑定域名访问服务器
- Linux 内存管理 | 地址映射:分段、分页、段页
- where显示null行_Python 之 MySql“未解之谜”14-- 都是 NULL 惹的祸(下)
- 根据变量推断变量类型_Java A的新本地变量类型推断
- centos7设置键盘类型_CentOS 7 系统区域(语言)和键盘设置
- 安装JDK以及配置Java运行环境
- 解决jupyter notebook输出显示不完整问题
- 基于Opencv实现车牌图片识别系统
- Rime中州韵导入QQ五笔词库
- C语言基础知识快速入门(全面)
- 安装torch 时,bash install-deps错误
- [含lw+源码等]S2SH+mysql的报刊订阅系统[包运行成功]Java毕业设计计算机毕设
- Elasticsearch 之(6)kibana嵌套聚合,下钻分析,聚合分析
- 第071封“情书”:绳命20181008 Create and Simulate a Procedural Rope<Entagma>Houdini 2018
- 导致ImportError: No module named 'xxx'问题的两种原因以及解决方案
- 史上最直白的RNN详解(结合torch的example)
- 对UART、RS232、485通信的理解