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 加密与解密内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
SpringBoot整合Mybatis Plus多数据源的实现示例
本文主要介绍了SpringBoot整合Mybatis Plus多数据源的实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2021-11-11自定义Jackson的ObjectMapper如何实现@ResponseBody的自定义渲染
这篇文章主要介绍了自定义Jackson的ObjectMapper如何实现@ResponseBody的自定义渲染,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-07-07Netty分布式抽象编码器MessageToByteEncoder逻辑分析
这篇文章主要介绍了Netty分布式抽象编码器MessageToByteEncoder的抽象逻辑分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-03-03
最新评论