一个常见的安全误区
在代码审查中,我们经常看到开发者使用 Base64 编码来"保护"密码或 API 密钥。这是完全错误的。Base64 不是加密算法,它不提供任何保密性。任何人都可以轻松地将 Base64 字符串解码回原始文本。
编码 vs 加密:本质区别
编码的目的是将数据转换为另一种格式以便安全传输,它是可逆的且不需要密钥。加密的目的是将数据转换为只有持有密钥的人才能读取的形式。
Base64 的真正用途
- 电子邮件附件:MIME 协议使用 Base64 将二进制文件编码为 ASCII 文本
- Data URI:前端开发中将小图片直接嵌入 HTML/CSS
- JWT 的 Header 和 Payload:使用 Base64Url 编码保证 JSON 数据安全传输
什么时候不该用 Base64
不要用于存储密码(请使用 bcrypt/Argon2)、传输 API 密钥(请使用 HTTPS)、或任何你希望"不让别人看到"的场景。
动手试试
使用我们的 Base64 在线编解码工具 体验编码和解码过程,您会发现整个过程完全可逆。