- 数据加密:public static Base64.Encoder getEncoder()。数据加密处理:public byte[] encoder(byte[] src);
- 数据解密:public static Base64.Decoder getDecoder()。数据加密处理:public byte[] decoder(String src);
1、实现Base64加密与解密操作的例子:
package com.mydemo;
import java.util.Base64;
public class Base64Demo {
public static void main(String[] args) {
// 原文
String msg = "Base64加密与解密的小例子";
// 数据加密
String enMsg = new String(Base64.getEncoder().encode(msg.getBytes()));
System.out.println("密文:" + enMsg);
// 数据解密
String oldMsg = new String(Base64.getDecoder().decode(enMsg));
System.out.println("明文:" + oldMsg);
}
}
运行结果:
密文:QmFzZTY05Yqg5a+G5LiO6Kej5a+G55qE5bCP5L6L5a2Q
明文:Base64加密与解密的小例子
2、基于Base64定义复杂加密与解密操作的例子:
package com.mydemo;
import java.util.Base64;
public class Base64Demo {
public static void main(String[] args) {
// 原文
String msg = "Base64加密与解密的小例子";
// 数据加密
String enMsg = StringUtil.encode(msg);
System.out.println("密文:" + enMsg);
// 数据解密
String oldMsg = StringUtil.decode(enMsg);
System.out.println("明文:" + oldMsg);
}
}
/**
* 定义一个字符串操作类,提供字符串的辅助处理功能
*/
class StringUtil {
private static final String SALT = "mlgb"; // 公共的盐值
private static final int REPEAT = 5; // 加密次数
/**
* 加密处理
*
* @param str 要加密的字符串,需要与盐值整合
* @return 加密后的数据
*/
public static String encode(String str) {
String temp = str + "{" + SALT + "}"; // 盐值对外不公布
byte data[] = temp.getBytes(); // 将字符串变为字节数组
for (int i = 0; i < REPEAT; i++) {
data = Base64.getEncoder().encode(data); // 重复加密
}
return new String(data); // 返回加密后的内容
}
/**
* 进行解密处理
*
* @param str 要解密的内容
* @return 解密后的原始数据
*/
public static String decode(String str) {
byte data[] = str.getBytes();
for (int i = 0; i < REPEAT; i++) {
data = Base64.getDecoder().decode(data);
}
// 删除盐值格式
return new String(data).replace("\\{\\w+\\}", "");
}
}
运行结果:
密文:VmxaamVGSXlWbk5qUmxaWVZrVkZlRll4YUVkaWF6VllVbGhLVTJWc1drNVpWbFUwVFd4TmVWWnVSazlXTUZaNVZXNXdWazFYVGxaV1ZFWmFZVEExVWxSc1ZqTk5iRkpGVm0xb1RtSkZXbk5VVjNCSFpXeGtjVk5yZEZCVlZEQTU=
明文:Base64加密与解密的小例子{mlgb}