Спасибо за ссылки. Обязательно изучу. Чемберлен доволен.
Вряд ли самопал достоин Вашего внимания, ну уж просите коль:
0.1) под хэшем md5 понимается преобразованный к 16 байтовому (бинарному) представлению вариант хэша выводимый функцией md5()
0.2) итерационный хэш - хэш md5 [см 0.1] из пароля со смещением в представлении
-==-
1) Вычисляется стартовый хэш пароля.
2) Вычисляется первый итерационный хэш.
3) Сжимается файл. Получаем бинарную последовательность уже сжатого файла.
4) На основе итерационного хэша вычисляется файловое смещение, то место куда будет внедрятся итерационный хэш. То есть фактически файл рвётся на две части в неизвестном месте, этим хэшем.
5) Файл добавляется к файлу архива
6) Вычисляется следующий итерационный хэш, который становится стартовым и операция повторяется.
-==-
В итоге - длинный файл. Не зная пароля расшифровать сложно.