1

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

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

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

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

1 ответ1

3

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .