Base91编码解码-在线Base91编码|在线Base91解码
免费在线Base91编码解码工具,支持文本与Base91编码互转,采用Martin Pool原版Base91实现,操作简单高效
Base91编码/解码(快速转换)
Base91编码实现说明(无统一官方标准)
Base91是一种高效的二进制数据编码方式,相比Base64有更高的编码效率。注意:Base91目前无统一官方标准(无RFC等规范),不同工具的字符集和实现细节可能不同。本工具采用Martin Pool原版Base91设计思路,具体实现规则如下:
| 特性 | 本工具实现规则 | 说明 |
|---|---|---|
| 字符集 | ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!#$%&()*+,./:;<=> ?@[]^_`{|}~ (91个可打印ASCII字符,0x21-0x7e 排除 0x22,0x27,0x2c,0x5c,0x60) | 包含大小写字母、数字和符号,剔除易冲突字符(引号、逗号、反斜杠等) |
| 编码效率 | 每13位二进制数据编码为2个字符 | 比Base64高约1.5%的效率,数据体积更小 |
| 编码原理 | 将二进制数据按13位分组,映射到91字符集 | 13位可以表示0-8191,正好映射到91×91=8281个组合 |
| 应用场景 | 高压缩比数据传输、二进制数据文本化、网络协议传输 | |
| 兼容说明 | 不同Base91工具的实现规则可能不同,编码结果仅保证本工具内可逆 | |
本工具使用的Base91完整字符集(共91个):
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!#$%&()*+,./:;<=>?@[]^_`{|}~
Base91编码解码知识科普
1. Base91是什么? Base91是由Martin Pool于2000年设计的二进制数据编码方式,旨在提供比Base64更高的编码效率。注意:Base91无统一官方标准,不同实现的字符集和规则可能存在差异。本工具实现的Base91使用91个可打印ASCII字符,每13位二进制数据编码为2个字符,是目前效率最高的Base编码之一。
2. Base91编码原理 Base91编码的核心是高效的二进制分组:
① 将输入的字节流转换为连续的二进制位流
② 按13位分组,不足13位的部分用0补齐
③ 每个13位值(0-8191)拆分为两个索引:第一个索引=值//91,第二个索引=值%91
④ 两个索引分别映射到本工具定义的Base91字符表中的对应字符
⑤ 最后不足13位的部分特殊处理
3. Base91解码注意事项
• 解码仅支持本工具定义的91个字符集,其他字符集的Base91编码可能解码失败
• 空白字符通常需要过滤后再解码
• 非法字符会导致解码失败,严格模式下会直接报错
• 解码时需要处理13位分组的边界情况
• 不同Base91工具的编码结果无法互通,需使用同一实现解码
4. Base91与Base64的区别
• 字符集:Base91(本工具)使用91个字符,Base64使用64个字符(有官方标准)
• 效率:Base91效率约85.3%,Base64效率约75%
• 兼容性:Base64有统一标准、跨工具通用;Base91无标准、仅同实现互通
• 实现复杂度:Base91比Base64稍复杂
5. Base91应用场景
• 需要高编码效率的二进制数据传输
• 嵌入式系统的二进制数据文本化
• 网络协议中的二进制数据封装
• 配置文件中的二进制数据存储
• 比Base64要求更高压缩比且无需跨工具兼容的场景