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 约定标记编码区域。编码器始终会添加,解码器在存在时会自动去除。也可以粘贴不带分隔符的字符串。
相关工具
Base64 文件编码器
将任意文件(PDF、ZIP、图片、可执行文件)编码为 Base64 文本,用于嵌入 JSON、邮件、YAML 或 data URI。在浏览器本地运行,无需上传。
Base58 编码器和解码器
编码 UTF-8 文本或十六进制字节,并使用 Bitcoin、Ripple 或 Flickr 字母表安全解码 Base58。
bcrypt 哈希生成器
生成 bcrypt 哈希,或用明文密码对照已有的 bcrypt 哈希进行验证。一个工具内并排支持生成和验证。
A1Z26 密码编码器
使用 A1Z26 密码(A=1, B=2, ... Z=26)编码文本,或把数字序列解码回字母,并可自定义分隔符。
SSL 证书生成器
完全在浏览器中生成自签名 SSL/TLS 证书和 RSA 私钥。自定义 Common Name、SAN 和有效期,导出为 PEM。
Base32 编码器和解码器
使用 RFC 4648 字母表编码和解码 Base32 字符串。适用于 TOTP 密钥、大小写不敏感的令牌和人工输入的标识符。
此工具还提供其他语言版本
- Base85 Kodlayıcı ve Çözücü [TR]
- Codificador y Decodificador Base85 [ES]
- مشفر ومفكك Base85 [AR]
- Encodeur et décodeur Base85 [FR]
- Base85 encoder en decoder [NL]
- Base85 인코더 및 디코더 [KO]
- Encoder dan Decoder Base85 [ID]
- Base85 Encoder and Decoder [EN]
- Bộ mã hóa và giải mã Base85 [VI]
- Base85エンコーダー・デコーダー [JA]
- ตัวเข้ารหัสและถอดรหัส Base85 [TH]
- Codificador e Decodificador Base85 [PT]
- Base85-Encoder/Decoder [DE]
- Base85-kodare och avkodare [SV]
- Koder i dekoder Base85 [PL]
- Codificatore e Decodificatore Base85 [IT]
- Кодировщик и декодировщик Base85 [RU]