无需登录 数据私有 本地保存

yEnc编码解码工具 - Usenet二进制附件格式

12
0
0
0

yEnc 编码/解码工具

Usenet 二进制附件的高效编码格式 — 比 Base64 节省约 30% 空间

编码模式:输入原始数据 → 输出 yEnc 格式
输入 原始数据
或将文件拖放到此处
输入大小: 0 B
输出 yEnc 编码
输出大小: 0 B

常见问题与知识点

什么是 yEnc 编码?它和 Base64 有什么区别?
yEnc(全称 yEncoding)是一种为 Usenet 二进制附件设计的 8 位编码格式。与 Base64 相比,Base64 将 3 个字节编码为 4 个字符(开销约 33%),而 yEnc 使用 8 位编码,仅对少数特殊字节进行转义,开销通常仅 1-2%。这使得 yEnc 在 Usenet 上传输二进制文件时更加高效,大幅减少传输数据量。
yEnc 编码中哪些字符需要转义?
标准 yEnc 编码中,以下 4 个字节被定义为关键字节需要转义:NUL (0x00)、LF (0x0A)、CR (0x0D) 和等号 = (0x3D)。编码算法为:encoded = (original + 42) mod 256,若 encoded 结果命中关键字节,则在其前插入转义符 =,并将该字节再加 64。解码时逆向操作即可恢复原始数据。
yEnc 头部中的 line、size、name、pcrc32 分别代表什么?
line= 指定每行最大字符数(通常 128);size= 原始文件的字节大小;name= 原始文件名;pcrc32= 原始数据 CRC32 校验值的十六进制表示,用于验证解码后数据的完整性。完整头部示例:=ybegin part=1 total=1 line=128 size=12345 name=photo.jpg
为什么 Usenet 使用 yEnc 而不是 Base64?
Usenet 文章有行长度限制(通常 ≤ 998 字符),且早期 NNTP 协议仅支持 7 位传输。随着 8 位传输的普及,yEnc 在 2001 年被提出,利用 8 位扩展大幅提升编码效率。相比 Base64 的 33% 开销,yEnc 仅约 1-2%,对于 GB 级别的二进制组(如 alt.binaries.*)节省巨大。如今 yEnc 已成为 Usenet 二进制附件的实际标准。
解码时 CRC32 校验失败怎么办?
CRC32 校验失败通常意味着数据在传输或复制过程中出现了损坏。请检查:① yEnc 数据是否完整(特别是跨多篇文章的拼接);② 行尾换行符是否被意外修改;③ 是否有额外的空格或空行混入数据。如果数据来源可靠且文件可以正常打开,CRC 不匹配也可能是由于非标准实现导致的。本工具使用标准 CRC32 多项式(与 ZIP/gzip 相同)。
✅ 已复制到剪贴板