0

我需要一个 cmd 工具或算法描述来执行以下操作:

给定一个任意大小的文件(大小 < 1GB),我需要将文件分成 n 个部分(n 可以是任何合理的数字)和 1 个带有元数据的文件。元数据类似于 RAID 系统中的“奇偶校验”字节,如果文件的一部分丢失,我可以恢复整个文件。因此,元数据是一种有助于恢复原始文件的“额外”或冗余信息。其他 n 部分不应该有任何额外的信息。

目前,我尝试使用 pacrhive 和 par2 工具,但它们没有实现我上面描述的想法。此外,我尝试使用前向纠错 (FEC) 和 Reed-Solomon 代码,但也没有成功。谢谢你的帮助。

4

1 回答 1

1

您可以应用与RAID 5几乎相同的东西(虽然这是针对硬盘驱动器的,但同样的逻辑适用)。

因此,将第 1 个字节发送到第 1 个文件,将第 2 个字节发送到第 2 个文件,...,第 n 个发送到第 n 个,第 (n+1) 个发送到第 1 个,第 (n+2) 个发送到第 2 个,等等.

然后只需将n个文件中每个位的奇偶校验放入最后一个文件中,即:

1st bit of last file = 1st bit of 1st file
                   XOR 1st bit of 2nd file
                   XOR ...
                   XOR 1st bit of nth file

2nd bit of last file = XOR of 2nd bits of all the other files as above

这将允许您通过仅计算其余文件的奇偶校验来恢复任何文件(包括“元数据”文件)。

于 2013-10-17T09:00:50.780 回答