GEXNO / 指南 / Base64 编码是什么?一文看懂编码、解码与图片转 Base64
Base64 编码是什么?一文看懂编码、解码与图片转 Base64
Base64 不是加密!本文用大白话讲清 Base64 的原理和用途,在线完成文本与文件的 Base64 编码解码,本地处理不上传。
Base64 是什么?先纠正一个常见误解
Base64 不是加密——它没有密钥、任何人都能解码,只是一种「编码」。它的作用是把任意二进制数据用 64 个可打印字符(A-Z、a-z、0-9、+、/)表示出来,让二进制数据能安全地走「只认文本」的通道:邮件协议、JSON 字段、Data URL、配置文件。
代价是体积:3 字节变成 4 个字符,体积膨胀约 33%。所以 Base64 从来不是为了省空间,而是为了「能传输」。
文本的 Base64:编码与解码
GEXNO Tools 的 Base64 工具双向即时转换:左边输入文本,右边实时给出编码结果;把流程反过来贴一串 Base64 也能解回原文。支持中文(UTF-8),本地处理。
图片转 Base64:Data URL 的正确用法
把小图标、logo 转成 Base64 后可以直接内联进 HTML/CSS:<img src="data:image/png;base64,....">,省一次 HTTP 请求。适合 10KB 以下的图标;大图片内联反而拖慢首屏(体积 +33%,且无法被浏览器单独缓存)。
什么时候该用 Base64,什么时候不该
- 该用:邮件附件(MIME)、JSON 里传二进制、小图标内联、JWT 的签名段、把二进制塞进只有文本的通道。
- 不该用:大图内联网页、替代真正的加密、存储原本就能存的二进制文件(白增 33% 体积)。
- 需要保密时:先加密再编码——Base64 只解决「传输格式」,不解决「安全」。
一个 5 秒的小实验
把 GEXNO 五个字母做 Base64 编码,得到 R0VYTk8=。末尾的 = 是补位符(输入长度不是 3 的倍数时补齐)。把结果贴回解码框,立刻还原。亲手做一次,比读十篇文章都记得牢。
常见问题
Base64 是加密吗?安全吗?
不是加密,是编码——没有密钥,任何人都能解码。需要保密请先使用 AES 等真正的加密,再按需 Base64 编码传输。
为什么 Base64 编码后体积变大?
每 3 字节数据编码成 4 个字符,体积增加约 33%;传输通道只认文本时,这是必要的代价。
URL 里能用标准 Base64 吗?
标准 Base64 里的 + 和 / 在 URL 中有特殊含义。URL 场景应使用 Base64url 变体(用 - 和 _ 替换),或对结果做 URL 编码。
图片转 Base64 后怎么用?
拼成 data:image/png;base64,xxxx 的 Data URL,直接放进 <img src> 或 CSS 的 url()。只建议小于 10KB 的图标这样做。
中文 Base64 编码后为什么不一样?
Base64 编码的是字节序列,中文先按 UTF-8 转成字节再编码。双方都用 UTF-8 时结果一致;出现乱码多半是某一方按了 GBK 之类的编码。