为什么稳健的备份体系绝不应依赖文件名:自描述二进制文件架构解析
依赖文件名与目录结构的传统备份极度脆弱。本文详解自包含二进制头部、魔数与 UUID 自匹配机制,实现文件名被任意修改依然秒级还原的硬核架构。
为什么稳健的备份体系绝不应依赖文件名:自描述二进制文件架构解析
在传统脆弱的备份软件设计中,数据还原往往高度依赖外部文件名的精确匹配(例如必须命名为 archive.part01.rar 或 backup_chunk_001.dat)或外部清单索引数据库。
然而,在跨越数年、经历多次操作系统换代、跨盘拷贝与不同网盘下载后,文件名极易发生变动:Windows 系统会自动将重名文件重命名为 backup_chunk_001 (1).dat;云盘同步冲突时会追加 [冲突副本] 后缀;用户在整理文件夹时也可能随意修改文件名。
如果恢复程序因文件名被修改而拒绝识别,哪怕底层数据分片百分之百完好无损,用户也将面临无法解密还原的悲剧。
外部元数据的极端脆弱性
- 跨文件系统字符集冲突:在 Windows NTFS、macOS APFS、Linux ext4 与移动 U 盘 FAT32 之间迁移文件时,路径分隔符与编码极易产生畸变;
- 云盘下载自动重命名:从不同网盘批量打包下载时,文件名经常被重组;
- 人工误操作混淆:多个不同备份的分片被随手拖入同一个平铺文件夹。
YourKeep 自描述二进制头部设计
YourKeep 从底层彻底消除了对外部文件名的依赖,在每一个 .keep 分片文件的起始字节中内嵌了完整的自描述密码学头部结构:
+-------------------------------------------------------------------------+
| 魔数标识 (0x594B454550 "YKEEP") | 协议格式版本号 (0x01) |
+-------------------------------------------------------------------------+
| 全局唯一容器 UUID (128-bit) | 当前分片索引 (k) / 总分片数 (N) |
+-------------------------------------------------------------------------+
| 最小恢复门限 (K) | 原始明文 SHA-256 校验和 |
+-------------------------------------------------------------------------+
| AEAD Nonce (96-bit) | GHASH 认证完整性标签 (128-bit) |
+-------------------------------------------------------------------------+
| 加密数据分片载荷 |
+-------------------------------------------------------------------------+
无状态智能识别流程:
- 文件名完全脱敏:您可以把 10 个分片随意重命名为
a.txt、video.mp4、data.bin并丢在同一个文件夹中; - 读取二进制魔数:YourKeep 引擎扫描目录中的文件头部,秒级定位符合规范的合法分片;
- 基于 UUID 自动聚合:引擎读取内部
Container UUID与分片编号 $k$,自动归类匹配,校验 GHASH 标签,并无缝完成纠删码重构。
真正的灾难恢复,必须做到即使所有外部文件名和目录结构全毁,数据本身依然能够自证明、自识别、自还原!