Base64加密工具类
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加密工具类相关推荐
- Java 开发中常用的 4 种加密方法。MD5加密工具类测试 base64加密工具类测试 SHA加密工具类测试 BCrypt加密工具类测试
一.工具类 1, md5加密工具类 2, base64加密工具类 3, Bcrypt工具类 二.加密测试 MD5加密测试 base64加密测试 SHA加密测试 BCrypt加密测试 一.工具类 1, ...
- Base64加密工具类 - Base64Utils
package com.zykj.zycxapplet.utils;import java.io.*;/*** <p>* BASE64编码解码工具包* </p>* <p& ...
- 加密工具类 - CryptoUtils.java
加密工具类,包含MD5,BASE64,SHA,CRC32的加密与解密方法. 源码如下:(点击下载 - CryptoUtils.java.commons-io-2.4.jar.commons-code ...
- App开发流程之加密工具类
从这篇记录开始,记录的都算是干货了,都是一些编程日常的积累. 我建议先将基础的工具加入项目,后续的开发效率会呈指数增长.如果在专注功能开发过程中,才发现缺少大量常用的工具,不仅会打断思路,还会拖慢开发 ...
- Java加密工具类EncryptUtils
Java 提供了一些常见的加密算法,如 MD5.SHA.AES.DES,现将这些实现方法放进加密工具类 EncryptionUtils 使用了 String.format() 来确保每个字节都能够正确 ...
- 一、java项目常用工具类之加密工具类
项目环境: jdk1.8+spring4.3.12 一.问题描述及试用场景: 在项目规范中,有时需要对一些数据进行加密解密,常见的就是前后端加密参数在网络上传输.一方面,数据在网络上是以加密的方式传输 ...
- 【Java工具类】(30)—DES加密工具类
Java工具类(30)-DES加密工具类 package com.awifi.cloudnative.container.manage.provider.utils;import org.apache ...
- java 在线rsa解密_通用的Java RSA加密工具类,可在线验证通过
/** * RSA加密工具类 * 使用PKCS1_PADDING填充,密钥长度1024 * 加解密结果在这里测试通过:http://tool.chacuo.net/cryptrsaprikey * 注 ...
- java在线支付---04_编写易宝支付的客户端加密工具类
2013/5/30 04_编写易宝支付的客户端加密工具类 创梦综合技术qq交流群:CreDream:251572072 ---------------------------------------- ...
最新文章
- php点号的意思,[PHP] - 逗号和点号的区别
- QT子对话框中的变量如何相互调用
- Mule ESB 3.3与CloudHub
- resultset需要关闭吗_旧电脑福音!关闭Windows这些没用的设置,电脑性能至少提升50%!...
- Saltstack_使用指南17_salt-ssh
- mysql改utf8mb4后速度慢_更改MySQL数据库的编码为utf8mb4
- 2.5.5.2 特殊文件:/dev/null 与 /dev/tty
- 牛客多校训练AFJ(签到)
- 泛娱乐出海走出水土不服,元宇宙社交诞生新机会!
- 用Java实现24点游戏
- 自适应Simpson法P4525 【模板】自适应辛普森法1
- python1到100奇数和_python计算1~100的和,1~100奇数的和,1~100偶数的和,一条代码求1~100的和...
- 短视频矩阵系统,抖音矩阵系统源码,抖音SEO源码。
- 软件测试之微软学术搜索(Microsoft Academic Search)
- [CSP-S模拟测试]:夜鹰与玫瑰(数学)
- 《算法竞赛进阶》学习笔记
- python海龟绘图(turtle)手绘【玫瑰、时钟、哆啦A梦、小猪佩奇、史迪仔】
- 外卖派单模拟系统C语言代码,GitHub - Sndav/SuperDeliver: 外卖派单模拟系统大作业
- File “pycocotools/_mask.pyx“, line 292, in pycocotools._mask.frPyObjects IndexError: list index ..
- 蒙古军团最难对付的是谁?