CryptScript - программа предназначена для параноидально обратимого шифрования файлов. В первую очередь создавалась, для создания шифрованных скриптов, которые в последствие должны хранится в пользовательской папке (data). С гибконастраиваемыми настройками переименования файлов. Так же удаляются все комментарии, переносы строк и лишние пробелы.

Данный скрипт шифрует четырмя алгоритмами (классами), без использования сторонних DLL, типа mcrypt. Данные классы взяты из паблика.

Вот эти классы шифрования.
1) ctlCipherSaber (RC4 aka CipherSaber (v1&2) encryption/decryption)
http://www.phpclasses.org/package/1055-PHP-RC4-aka-CipherSaber-v1-2-encryption-decryption.html
2) RC4 Cipher (Encrypt and decrypt data with RC4 algorithm)
http://www.phpclasses.org/package/4957-PHP-Encrypt-and-decrypt-data-with-RC4-algorithm.html
3) Perfect Crypt Class (Symetric encryption of data using only PHP code) (Blowfish)
http://www.phpclasses.org/package/1610-PHP-Symetric-encryption-of-data-using-only-PHP-code.html
4) CAST 128 Encryption and Decryption (A pure PHP CAST 128 encryption implementation)
http://www.phpclasses.org/package/1983-PHP-A-pure-PHP-CAST-128-encryption-implementation.html



В программе имеются "скрытые" возможности:

1) Поддерживается установка ключей из файла - загрузка ключей для шифрования из файла keys.ini или keys.txt.
Поэтому, если вы будете шифровать txt или ini файлы, то выбирайте противоположный формат или используйте расширенные настройки (см. ниже) через config.ini. Так же категорически не рекомендуется шифровать файлы с такими названиями.

Файл с ключами должен находиться в папке с исходными файлами. Каждый ключ должен находиться на новой строке.

2) По аналогичной схеме поддерживается переименование файлов из list.ini или list.txt.
Пример:
index.php = 0001.pro
solution.php = 0001.pro
или
index = 0001
solution = 0001
Таким образом можно не боятся, что при повторные шифрования файлов у вас окажутся новые файл в проекте под новыми названиями.
ВНИМАНИЕ! Запрещено использовать спец. символы, иначе могут возникнуть ошибки при создание файлов. Если вы не знаете про что речь, то используйете только буквы (латински a-z или кирилические а-я), цифры (0-9), пробел, тире и подчеркивание.

3) "crypt" - порядок применения алгоритмов шифрования. Сделана для еще более параноидальной шифровки. По умолчанию "1234".


В программе присутсвуют расширенные настройки для автоматизации программы, которые вы можете редактировать через config.ini.

Чтобы возпользоваться расширенными настройками, поместите в папку с программой файл config.ini или переименуйте файл example-config.ini.

Обязательно объявите заголовок в файле [Configuration]

1) "from" отвечает за папку, из которой будут браться файлы, которые будут шифроваться. Тут необходимо указывать полный путь до папки. Во избежание конфликтов, желательно обрамлять путь в кавычки
Пример:
from="C:\Documents and Settings\Admin\Рабочий стол\project\tmp"

2) "where" данный параметр указывает на папку, в которую уже будут помещаться шифрованные файлы. Так же, как в параметре from, желательно указывать путь к папке в кавычках.
Пример:
where="C:\Documents and Settings\Admin\Рабочий стол\project\data"

3) "default_key0", "default_key1", "default_key2", "default_key3" - ключи по умолчанию. В случае отсутсвия - ключи будут постоянно генерироваться автоматически.
Например:
default_key0="P1mEX^sjra{[a*."
default_key1="e1Ed}-oj^jf-s%F`tB"
default_key2="j)!Ebv?b(-)?*X{oSBA"
default_key3="u+ggn3od<i|"
Надо понимать, что использовать любые кавычки строго запрещено, если вам надо ключи с кавычками, то для это используйте файл keys.ini или keys.txt в директории с исходными файлами.
Автоматическая генерация создает рандомные ключи длинной от 10 до 20 знаков.


Далее все параметры могут принимать значение "no" (0 или false) и "yes" (1 или true).
все параметры по умолчанию имеют значение "no", равно как и в отсуствие данных параметров.

4) "auto_load_keys" - если поставить "yes", то запроса на подключение ключей не будет, и в случае обнаружение файла ключей они автоматически будут загружены в программу.

5) "priority_default_key". Запрещает загрузку из файла ключей. Будут использоваться ключи из файла конфигурации программы. Так же в программе предусмотрена повторная генерация ключа по двойному клику в поле с ключом. Данная функция блокирует изменение поля, как руками, так и автогенератором. В случае не удовлетворения выше озвученным условиям, при загрузке программы произойдет автогенерация ключе, но последующее их изменение будет не возможно.

6) "rename_file" - установив данный параметр в "yes" все шифрованные файлы будут иметь значение 0.***, 1.***, 2.*** и etc. При этом приоритеты все же будут установлены файлом list, т.е. не зависимо от значения - имена файлов будут грузится из list.

7) "from_ext" - тут указывается расширение исходных файлов. По умолчанию программа натравливается на PHP файлы.

8) "where_ext" - расширение для шифрованных файлов. Чтобы повысить ЧСВ и просто показаться крутым в лице пользователей можно установить например DLL, однако стоит понимать, что произойдет только переименование расширения, а не конвертация формата. По умолчания берется значение из "from_ext", или, в отсутсвие оного, остается исходное расширение

8) "auto_load_list" - разрешение на автоподключение list, без лишних запросов.

9) "remove_comment" - при заничение "yes" будут удалены все комментарии, а также лишние пробелы и переносы строк

10) "remove_tag" - при заничение "yes" у PHP файлов будут удалены открывающие и закрывающие теги (<?php ?>) в начале и в конце файла. Удобно для evel.
Внимание! Если вы шифруете не PHP скрипт, то этот параметр обязательно должен стоять в "no".

11) "auto" - очень полезная функция во время разработки, т.е. постоянном шифрование одних и тех же файлов. Она заставляет работать программу полностью автоматически, согласно инструкциям заложеным в config.ini. Установите данный параметр в "yes" и после запуска программа сама выполнит все инструкции и закроется.


В общем я пока сам запутался в созданных мной настройках, поэтому выкладываю версию 0.99. Далее по отзывам, если она конечно кому-то понадобится, будут внесены правки и выпущен финальный релиз. Так же в планах сделать настройки config.ini через интерфейс программы.


Как пользоватся.

Запускаем программу, заполняем поля (можно через config.ini заранее) и запускаем :D
В папке с исходными файлами создатся отчет, в котором будет содержаться техничиская информация, ключи, имена файлов, а так же алгоритм и инструкции для расшифровки.