一、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 加密与解密相关推荐

  1. java base64加密与解密

    目录 前言 一.base64加密与解密 1. base64有填充的编码与解码 2. base64无填充的编码与解码 二.MIME友好型base64加密与解密 前言 Base64 编码会将字符串编码得到 ...

  2. JAVA各种加密与解密方式

    之前有兴趣研究了一下java的加密与解密的方法,发现市面上有好多种加密解密方式,在这里整理了一下. 目录 1.BASE64加密/解密 2.MD5(Message Digest Algorithm)加密 ...

  3. Base64加密与解密使用(+拓展:盐值法)

    1.什么是Base64 Base64是一种直接利用64位可打印字符来表示二进制数据的算法,是一种比较常见的加密算法.JDK1.8版本提供了java.util.Base64的工具类,使用Base64提供 ...

  4. php cookie 加密解密,php 使用base64加密、解密cookie的示例

    这篇文章主要为大家详细介绍了php 使用base64加密.解密cookie的示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编罗X来看看吧. 经测试代码如下: ...

  5. python中base64加密和解密

    base64加密和解密有点头疼,必须要记录下来,以后忘了也能再来复习下 当然啦,能一直记住是最好的-加油吧,少年(其实已经好老了) 操作环境 win10,python3 base的原理 这个还是别人讲 ...

  6. Javascript Base64加密与解密

    Base64加密与解密 Base64.js function Base64() {// private property_keyStr = "ABCDEFGHIJKLMNOPQRSTUVWX ...

  7. shell脚本:base64加密、解密字符串并赋值给变量方法

    几经波折才能够实现使用 base64 加密.解密字符串并赋值给变量.网上绝大多数是使用 echo 管道实现 加密和解密字符串的输出. 代码如下: pwd=$( base64 -d <<&l ...

  8. Java Base64 加密解密 (数据加密或解决手机Emoji表情被数据库过滤掉的问题)

    2017年06月08日 10:15:19 glimmer_it 阅读数:359更多 个人分类: 安全加密 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.ne ...

  9. Java base64加密解密 两种实现方式

    1.为什么要使用Base 64 Base 64主要用途不是加密,而是把一些二进制数转成普通字符,方便在网络上传输. 由于一些二进制字符在传输协议中属于 控制字符,不能直接传送,所以需要转换一下才可以. ...

  10. Base64加密与解密

    Base64是jdk1.8新增的加密处理类,Base64处理,在这个类里面有两个内部类 Base64.Encoder :进行加密处理   public byte[] encode(byte[] src ...

最新文章

  1. python安装pillow模块错误
  2. php序列化数据无法反解析,PHP-反序列化数据不起作用
  3. Hbase 学习(三)Coprocessors
  4. nginx 禁止通过IP,未绑定域名访问服务器
  5. Linux 内存管理 | 地址映射:分段、分页、段页
  6. where显示null行_Python 之 MySql“未解之谜”14-- 都是 NULL 惹的祸(下)
  7. 根据变量推断变量类型_Java A的新本地变量类型推断
  8. centos7设置键盘类型_CentOS 7 系统区域(语言)和键盘设置
  9. 安装JDK以及配置Java运行环境
  10. 解决jupyter notebook输出显示不完整问题
  11. 基于Opencv实现车牌图片识别系统
  12. Rime中州韵导入QQ五笔词库
  13. C语言基础知识快速入门(全面)
  14. 安装torch 时,bash install-deps错误
  15. [含lw+源码等]S2SH+mysql的报刊订阅系统[包运行成功]Java毕业设计计算机毕设
  16. Elasticsearch 之(6)kibana嵌套聚合,下钻分析,聚合分析
  17. 第071封“情书”:绳命20181008 Create and Simulate a Procedural Rope<Entagma>Houdini 2018
  18. 导致ImportError: No module named 'xxx'问题的两种原因以及解决方案
  19. 史上最直白的RNN详解(结合torch的example)
  20. 对UART、RS232、485通信的理解

热门文章

  1. [daily][device] linux添加打印机
  2. 小程序开发小游戏注意事项
  3. Excel冻结窗口及设置下拉菜单
  4. 行测题中逻辑判断题的规律
  5. Nacos 学习笔记:安装运行初体验
  6. Windows7系统设置相对路径快捷方式
  7. 一行python代码带你装B
  8. 内测体验:JetBrains面向未来的Fleet编辑器是什么+究竟怎样 使用初体验+与vsc对比
  9. 批量删除多个 PPT 空白页
  10. html如何显示ppt首页,aspx怎样显示ppt转换的html页面