Base85 编码器和解码器
Base85 会把 4 个字节压缩成 5 个 ASCII 字符,比 Base64 的「3 字节换 4 字符」比例更紧凑,因为它使用 85 个字符的字符集而不是 64 个。本工具实现的是 Adobe Ascii85 变体,即 PostScript 和 PDF 文件内部使用的变体。编码器始终用 <~ 和 ~> 分隔符包裹输出;解码器接受带或不带分隔符的输入。
如何转换 Base85(Ascii85)
-
1
选择编码或解码
编码将原始字节转为 Ascii85;解码将 Ascii85 字符串转回字节。
-
2
粘贴文本
将要编码的字节或要解码的 Ascii85 字符串粘贴到输入框中。
-
3
编码器按每 4 个字节分块
每个 4 字节块会变成 5 个字符的 Base85 字符串。最后一块会先填充,再截去末尾多余部分。
-
4
复制结果
Ascii85 输出会用 `<~` 和 `~>` 分隔符包裹。重新粘贴即可解码,分隔符会自动去除。
大小开销对比
| 编码 | 每 4 字节字符数 | 相对二进制的开销 |
|---|---|---|
| Hex | 8 | +100% |
| Base64 | 5.33(含填充时向上取整为 8) | +37% |
| Base85 | 5 | +25% |
| 原始二进制 | 4 | 0 |
因此 1 MB 二进制会变成 1.25 MB 的 Base85、1.33 MB 的 Base64、2 MB 的 hex。
Ascii85 字符集
Ascii85(Adobe):ASCII 中 ! 到 u 的字符(33-117),并使用 z 作为 4 个零字节的简写。它是 PostScript 和 PDF 流的标准编码,形式为 <~...~>。
Z85(ZeroMQ)和用于 IPv6 的 RFC 1924 字符集是对同一 85 字符思路的不同分配。本工具不实现它们,因此用这些变体编码的字符串在此处会解码错误。
计算原理
每 4 个字节会被读作一个大端(big-endian)32 位整数 N。输出的 5 个字符是 N 在 85 进制下的各位数字,最高位在前。85^5 = 4 437 053 125,大于 2^32,所以 4 个字节总能放进 5 个字符。
什么时候 Ascii85 很重要
用文本编辑器打开任意 PDF 并搜索 ASCII85Decode。Adobe 用它作为嵌入图片和字体的过滤器,使这些内容能通过 7 位传输(旧式传真系统)。同样的编码也出现在许多 PostScript 文件和适合邮件传输的二进制传输中。
特殊情况
- 全零的 4 字节块:Ascii85 会把它编码为单个字符
z,而不是!!!!!。 - 最后的不完整块:用零字节填充,并在末尾截去相应数量的输出字符。
常见问题
论输出更小,是的。论通用兼容性,则不是。Ascii85 含有 <、>、&、" 等字符,在 XML、JSON 和 URL 中需要转义。大多数工具原生支持的是 Base64。
用于 PostScript 和 PDF 流中,编码区域用 <~ 和 ~> 标记。PDF 阅读器和编辑器会自动处理这种编码。
不支持。它只实现 Adobe Ascii85。Z85(ZeroMQ)和用于 IPv6 的 RFC 1924 字符集对 85 个字符的分配方式不同,因此用这些变体编码的字符串在此处会解码错误。
它们按照 Ascii85 约定标记编码区域。编码器始终会添加,解码器在存在时会自动去除。也可以粘贴不带分隔符的字符串。
相关工具
数字转字母密码
使用 A=1、B=2 密码(A1Z26)在数字和字母之间互相转换,适用于谜题、谜语和密室逃脱线索。
密码类型识别器
粘贴密文,识别器会给出可能的编码/密码方案:Base64、hex、二进制、摩斯、凯撒或替换、JWT 及常见哈希。
JWT 生成器
生成带有自定义头部、有效载荷声明、HMAC 或 RSA 签名方式、有效期及受众限制的已签名 JWT,用于测试。
密码强度检查器
在浏览器中检查密码强度:长度、字符多样性、以位为单位的熵值,以及粗略的破解时间估算。任何内容都不会被上传。
Base64 文件编码器
将任意文件(PDF、ZIP、图片、可执行文件)编码为 Base64 文本,用于嵌入 JSON、邮件、YAML 或 data URI。在浏览器本地运行,无需上传。
HMAC 生成器
根据消息和密钥生成 HMAC 签名(SHA-256、SHA-384、SHA-512、SHA-1或MD5),用于API认证和Webhook验证。
此工具还提供其他语言版本
- Base85エンコーダー・デコーダー [JA]
- Base85 encoder en decoder [NL]
- Codificador y Decodificador Base85 [ES]
- Bộ mã hóa và giải mã Base85 [VI]
- Codificador e Decodificador Base85 [PT]
- Encoder dan Decoder Base85 [ID]
- Base85-Encoder/Decoder [DE]
- Base85-kodare och avkodare [SV]
- مشفر ومفكك Base85 [AR]
- Koder i dekoder Base85 [PL]
- Base85 인코더 및 디코더 [KO]
- ตัวเข้ารหัสและถอดรหัส Base85 [TH]
- Encodeur et décodeur Base85 [FR]
- Base85 Encoder and Decoder [EN]
- Codificatore e Decodificatore Base85 [IT]
- Кодировщик и декодировщик Base85 [RU]
- Base85 Kodlayıcı ve Çözücü [TR]