Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。

Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。

Base64由于以上优点被广泛应用于计算机的各个领域,然而由于输出内容中包括两个以上“符号类”字符(+, /, =),不同的应用场景又分别研制了Base64的各种“变种”。为统一和规范化Base64的输出,Base62x被视为无符号化的改进版本,但Base62x的性能效率偏低,目前还不建议在项目中使用。

标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符。

为解决此问题,可采用一种用于URL的改进Base64编码,它在末尾填充’='号,并将标准Base64中的“+”和“/”分别改成了“-”和“_”,这样就免去了在URL编解码和数据库存储时所要作的转换,避免了编码信息长度在此过程中的增加,并统一了数据库、表单等处对象标识符的格式。

相关工具类如下:

public class Base64Util {/**** 普通解密操作* @param encodedText* @return*/public static byte[] decode(String encodedText) {final Base64.Decoder decoder = Base64.getDecoder();return decoder.decode(encodedText);}/**** 普通加密操作* @param data* @return*/public static String encode(byte[] data) {final Base64.Encoder encoder = Base64.getEncoder();return encoder.encodeToString(data);}/**** 解密操作* @param encodedText* @return*/public static byte[] decodeURL(String encodedText) {final Base64.Decoder decoder = Base64.getUrlDecoder();return decoder.decode(encodedText);}/**** 加密操作* @param data* @return*/public static String encodeURL(byte[] data) {final Base64.Encoder encoder = Base64.getUrlEncoder();return encoder.encodeToString(data);}
}

Base64加密工具类相关推荐

  1. Java 开发中常用的 4 种加密方法。MD5加密工具类测试 base64加密工具类测试 SHA加密工具类测试 BCrypt加密工具类测试

    一.工具类 1, md5加密工具类 2, base64加密工具类 3, Bcrypt工具类 二.加密测试 MD5加密测试 base64加密测试 SHA加密测试 BCrypt加密测试 一.工具类 1, ...

  2. Base64加密工具类 - Base64Utils

    package com.zykj.zycxapplet.utils;import java.io.*;/*** <p>* BASE64编码解码工具包* </p>* <p& ...

  3. 加密工具类 - CryptoUtils.java

    加密工具类,包含MD5,BASE64,SHA,CRC32的加密与解密方法. 源码如下:(点击下载  - CryptoUtils.java.commons-io-2.4.jar.commons-code ...

  4. App开发流程之加密工具类

    从这篇记录开始,记录的都算是干货了,都是一些编程日常的积累. 我建议先将基础的工具加入项目,后续的开发效率会呈指数增长.如果在专注功能开发过程中,才发现缺少大量常用的工具,不仅会打断思路,还会拖慢开发 ...

  5. Java加密工具类EncryptUtils

    Java 提供了一些常见的加密算法,如 MD5.SHA.AES.DES,现将这些实现方法放进加密工具类 EncryptionUtils 使用了 String.format() 来确保每个字节都能够正确 ...

  6. 一、java项目常用工具类之加密工具类

    项目环境: jdk1.8+spring4.3.12 一.问题描述及试用场景: 在项目规范中,有时需要对一些数据进行加密解密,常见的就是前后端加密参数在网络上传输.一方面,数据在网络上是以加密的方式传输 ...

  7. 【Java工具类】(30)—DES加密工具类

    Java工具类(30)-DES加密工具类 package com.awifi.cloudnative.container.manage.provider.utils;import org.apache ...

  8. java 在线rsa解密_通用的Java RSA加密工具类,可在线验证通过

    /** * RSA加密工具类 * 使用PKCS1_PADDING填充,密钥长度1024 * 加解密结果在这里测试通过:http://tool.chacuo.net/cryptrsaprikey * 注 ...

  9. java在线支付---04_编写易宝支付的客户端加密工具类

    2013/5/30 04_编写易宝支付的客户端加密工具类 创梦综合技术qq交流群:CreDream:251572072 ---------------------------------------- ...

最新文章

  1. php点号的意思,[PHP] - 逗号和点号的区别
  2. QT子对话框中的变量如何相互调用
  3. Mule ESB 3.3与CloudHub
  4. resultset需要关闭吗_旧电脑福音!关闭Windows这些没用的设置,电脑性能至少提升50%!...
  5. Saltstack_使用指南17_salt-ssh
  6. mysql改utf8mb4后速度慢_更改MySQL数据库的编码为utf8mb4
  7. 2.5.5.2 特殊文件:/dev/null 与 /dev/tty
  8. 牛客多校训练AFJ(签到)
  9. 泛娱乐出海走出水土不服,元宇宙社交诞生新机会!
  10. 用Java实现24点游戏
  11. 自适应Simpson法P4525 【模板】自适应辛普森法1
  12. python1到100奇数和_python计算1~100的和,1~100奇数的和,1~100偶数的和,一条代码求1~100的和...
  13. 短视频矩阵系统,抖音矩阵系统源码,抖音SEO源码。
  14. 软件测试之微软学术搜索(Microsoft Academic Search)
  15. [CSP-S模拟测试]:夜鹰与玫瑰(数学)
  16. 《算法竞赛进阶》学习笔记
  17. python海龟绘图(turtle)手绘【玫瑰、时钟、哆啦A梦、小猪佩奇、史迪仔】
  18. 外卖派单模拟系统C语言代码,GitHub - Sndav/SuperDeliver: 外卖派单模拟系统大作业
  19. File “pycocotools/_mask.pyx“, line 292, in pycocotools._mask.frPyObjects IndexError: list index ..
  20. 蒙古军团最难对付的是谁?

热门文章

  1. CMake系列(八) CMake 多级目录
  2. springboot中用RestTemplate调用百度ip定位服务
  3. 创维光伏:坚持科技创新,构建中国式现代化光伏生态体系
  4. 2s-AGCN 论文解读
  5. vue安装建议使用正版谷歌浏览器
  6. 我的2019年终总结:人生下半场,继续做“减法”
  7. 寻找第n个默尼森数。
  8. Understand
  9. 前端推荐!支持辅助线的开源图片编辑器
  10. matlab 循环写excel文件,matlab数据自动循环写入excel文件