Когда-то придумал для студентов простенький алгоритм кодирования текстовых сообщений, через смещение символов ASCII. Реализовали его они его, как обычно, с частичным успехом, но любая практика им впрок:) А несколько месяцев назад возникла задача зашифровать отдельные элементы справочника для клюшки. Вот тут я и вспомнил про этот метод. Совсем недавно потребовалось обеспечить эксклюзивный доступ к обработке более надежный чем стандартная система паролей. Сделал и это и все через тот же алгоритм...
Ну а сейчас собрал все это вместе под одной, так сказать "крышей", перевел на 8-ку и отправляю в свободное плавание.
Обработки абсолютно равнозначные, по функционалу и используемым алгоритмам кодирования. Изначально все делалось в клюшке, ну, а для расширения и жаждущих перевел очень тупо на 8-ку.
Принцип кодирования заключается в использовании некоего ключевого слова или фразы, через позиции символов которого и смещаются байты исходного текста или файла, в результате получается эдакая приятная на вид кашица (при текстовом просмотре) из самых на первый взгляд неожиданных и несвязанных между собой буковок и прочих значков. Для восстановления этой каши нужно снова ввести ключевое слово и пересчитать все смещения в обратную сторону. Для особо желающих можно регулировать количество проходов кодирования глобальной переменной модуля, увеличение количества проходов, конечно скажется на сложности дешифровки, но и на скорости работы тоже...
Насколько вообще это надежно и как это можно взломать мне оценить трудно, скажу лишь, что я сам не возьмусь взломать бинарный файл кодированный хотя бы в два прохода по ключу не меньше чем из 8 знаков. Жалко тратить жизнь, хотя может быть и очень интересно:)
Термин пароля в обработках на самом деле не точен, это скорее ключ, который перестраивает все содержимое текста или файла, в определенном смысле его подбор сможет восстановить информацию, но его нельзя сбить редактированием файла, как, допустим, это можно сделать со стандартным паролем обработок.
Ограничения по размеру кодируемых файлов где-то в районе 2 Гб (предельный размер String типа) теоретическое, но на практике не советую кодировать файлы больше 10Мб - слишком долго, хотя использование прогресса в состоянии хоть чуть чуть веселит в процессе, все равно не дождетесь, лучше сначала сжать архиватором.
Ограничения по длине ключа 30 символов (так мне захотелось - программисты могут довести до тех же 2Гб), ограничений по символам, используемым в ключе нет. Все что есть в ACSII - все можно, в том числе и пробелы.
Ну а вот о практической пользе этого творения решать все таки Вам. Знаете часто бывает, что есть цель, а средства нет. Ну так вот Вам средство, а цели выбирайте сами:)