Base64 不是对称加密算法,而是一种编码方式。它 不能加密也不能保证安全性,具体区别如下:
🔍 Base64 vs 对称加密
项目 | Base64 编码 | 对称加密(如 AES) |
---|---|---|
本质 | 编码(Encoding) | 加密(Encryption) |
是否可逆 | 可逆(无需密钥) | 可逆(需要密钥) |
是否安全 | ❌ 不安全(明文可还原) | 安全(无密钥不可解) |
使用目的 | 数据传输/存储兼容性 | 保密防篡改 |
常见用途 | 图片、文件、Token编码、HTTP传输 | 数据加密、通信加密、配置加密等 |
解码方式 | 任何人都可以解码 | 只有拥有密钥的人可以解密 |
示例:Base64 编解码
import java.util.Base64;
public class Base64Example {
public static void main(String[] args) {
String original = "HelloWorld123";
// 编码
String encoded = Base64.getEncoder().encodeToString(original.getBytes());
System.out.println("Base64编码后: " + encoded);
// 解码
byte[] decodedBytes = Base64.getDecoder().decode(encoded);
String decoded = new String(decodedBytes);
System.out.println("Base64解码后: " + decoded);
}
}
输出:
Base64编码后: SGVsbG9Xb3JsZDEyMw==
Base64解码后: HelloWorld123
总结
- Base64 是一种便于传输的编码方式
- 并不具备加密和防止泄露的能力
- 不能替代加密算法(如 AES、SM4)
- 若需要真正加密数据,应使用 对称或非对称加密算法