Как работает запись восстановления WinRAR?

554
7E10FC9A

Я пытался установить некоторую защиту от бит-гнили, и у WinRAR есть возможность добавить «процент» «записи восстановления», которая претендует на защиту от повреждения данных.

Единственный способ защитить себя от коррупции в произвольной позиции без копирования всего архива - это XOR всех «частей» данных. Их XOR может затем восстановить любую из поврежденных «частей».

Означает ли это, что WinRAR делит архив на «части», которые мы не можем видеть, и генерируем их XOR, которые мы также не можем видеть? И чем больше «процент» мы устанавливаем, тем больше размер «частей»?

Означает ли это также, что если в начале и конце данных происходят двухбитовые гниения, эта защита будет бесполезной?

1

1 ответ на вопрос

3
grawity

XOR - это один из способов сделать это (также известный как «четность», например, в RAID5). Согласно документации WinRAR, именно это использует формат «RAR 4» - хотя и с другой структурой, чем вы описали, для реализации пользовательского масштабирования в процентах и, вероятно, для обеспечения некоторого восстановления даже в описываемых вами крайних случаях.

Тем не менее, это гораздо более продвинутые методы. В частности, согласно документации WinRAR, «новый» формат RAR 5 использует кодирование Рида-Соломона, которое, если я правильно понимаю, может восстановить заданное количество байтов в любом месте архивных данных.

Рид-Соломон также используется Parchive / PAR2. Есть другие реализации; см. эти статьи для общего ознакомления с передовыми методами:

Похожие вопросы