CryptScript 0.9 beta
Представляю на всеобщее обозрение свою первую программу CryptScript созданную в DevelStudio.
CryptScript — программа предназначена для параноидального обратимого шифрования файлов на PHP. В первую очередь создавалась, для создания шифрованных скриптов, которые в последствие должны храниться в пользовательской папке (data) созданного в DevelStudio проекта. Присутствует возможность переименования файлов. Удаление из файлов всех комментариев, переносов строк и лишних пробелов позволяет сжимать файлы, делая их вполне компактными.
Данный скрипт шифрует четырьмя алгоритмами (классами), без использования сторонних DLL, типа mcrypt. Данные классы взяты из паблика.
Классы шифрования используемые в программе:
- ctlCipherSaber (RC4 aka CipherSaber (v1&2) encryption/decryption)
- RC4 Cipher (Encrypt and decrypt data with RC4 algorithm)
- Perfect Crypt Class (Symetric encryption of data using only PHP code) (Blowfish)
- CAST 128 Encryption and Decryption (A pure PHP CAST 128 encryption implementation)
Первые два класса вроде похожи, но вот результат шифрования у них различается.
Пару особенностей программы
В программе имеются «скрытые» возможности:
- Поддерживается установка ключей из файла — загрузка ключей для шифрования из файла keys.ini или keys.txt.
Поэтому, если вы будете шифровать txt или ini файлы, то выбирайте противоположный формат или используйте расширенные настройки через config.ini (см. ниже). Также категорически не рекомендуется шифровать файлы с такими же названиями (keys.ini и keys.txt).Файл с ключами должен находиться в папке с исходными файлами. Каждый ключ должен находиться на новой строке.
- По аналогичной схеме поддерживается переименование файлов из list.ini или list.txt.
Пример:index.php = 0001.pro solution.php = 0001.pro
или
index = 0001 solution = 0001
Таким образом можно не бояться, что при повторном шифровании файлов у вас окажутся новые файл в проекте под новыми названиями.
ВНИМАНИЕ! Запрещено использовать спец. символы, иначе могут возникнуть ошибки при создании файлов. Если вы не знаете про что речь, то используйете только буквы (латински a-z или кирилические а-я), цифры (0-9), пробел, тире и подчеркивание.
Расширенные настройки
В программе присутствуют расширенные настройки для автоматизации программы, которые вы можете редактировать через config.ini.
Чтобы воспользоваться расширенными настройками, поместите в папку с программой файл config.ini или переименуйте файл example-config.ini.
Обязательно объявите заголовок в файле [Configuration]
- «from» — отвечает за папку, из которой будут браться файлы, которые будут шифроваться. Тут необходимо указывать полный путь до папки. Во избежание ошибок рекомендуется обрамлять путь в кавычки.
Пример:from="C:\Documents and Settings\Admin\Рабочий стол\project\tmp"
- «where» — данный параметр указывает на папку, в которую будут помещаться шифрованные файлы. Так же, как в параметре from, рекомендуется обрамлять путь к папке в кавычки.
Пример:where="C:\Documents and Settings\Admin\Рабочий стол\project\data"
- «crypt» — порядок применения алгоритмов шифрования. Сделана для еще более параноидальной шифровки. По умолчанию «1234». Если вы хотите применить только один вид шифрования, то укажите соответствующую цифру. И наоборот, если вам мало просто 4 алгоритмов шифрования, то укажите больше цифр, например 3241423421 и т.д., но учтите, чем больше проходов шифрования, тем дольше выполняется шифрование и дешифрование.
1) ctlCipherSaber
2) RC4 Cipher
3) Perfect Crypt Class
4) CAST 128 Encryption and Decryption - «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+ggn3odi|"
Надо понимать, что использовать любые кавычки строго запрещено.
Автоматическая генерация создает рандомные ключи длинной от 10 до 20 знаков. - «from_ext» — тут указывается расширение исходных файлов. По умолчанию программа «натравливается» на PHP файлы.
- «where_ext» — расширение для шифрованных файлов. Чтобы повысить ЧСВ и просто показаться крутым в лице пользователей можно установить например расширение DLL, однако стоит понимать, что произойдет только переименование расширения, а не конвертация формата. По умолчания берется значение из «from_ext», т.е. исходное расширение.
Если есть файл list.txt(ini), то приоритет будет отдан названиям из list файла
- «auto_load_keys» — если поставить «yes», то запроса на подключение ключей не будет, и в случае обнаружение файла ключей они автоматически будут загружены в программу.
- «priority_default_key» — запрещает загрузку из файла ключей. Будут использоваться ключи из файла конфигурации программы. Так же в программе предусмотрена повторная генерация ключа по двойному клику в поле с ключом. Данная функция блокирует изменение поля, как руками, так и автогенератором. В случае не удовлетворения выше озвученным условиям, при загрузке программы произойдет автогенерация ключей, но последующее их изменение будет не возможно.
- «rename_file» — установив данный параметр в «yes» все шифрованные файлы будут иметь значение 0.***, 1.***, 2.*** и etc. При этом приоритеты все же будут установлены файлом list, т.е. не зависимо от значения — имена файлов будут грузится из list.
- «auto_load_list» — разрешение на автоподключение list в случае обнаружения, без лишних запросов.
- «remove_comment» — при значение «yes» будут удалены все комментарии, а также лишние пробелы и переносы строк
- «remove_tag» — при значение «yes» у PHP файлов будут удалены открывающие и закрывающие теги (< ?php ?>) в начале и в конце файла. Удобно для eval.
Внимание! Если вы шифруете не PHP скрипт, то этот параметр обязательно должен стоять в «no», так как работает простой алгоритм удаления первых 5 и последних двух знаков в файле. - «auto» — очень полезная функция во время разработки, т.е. при постоянном шифрование одних и тех же файлов. Она заставляет работать программу полностью автоматически, согласно инструкциям заложенных в config.ini. Установите данный параметр в «yes» и после запуска программа сама выполнит все инструкции и закроется.
Далее все параметры могут принимать значение «no» (0 или false) и «yes» (1 или true).
Все параметры по умолчанию имеют значение «no», равно как и в отсутствие данных параметров.
Как пользоваться
Запускаем программу, заполняем поля (можно через config.ini заранее) и запускаем 😀
В папке с исходными файлами создастся отчет, в котором будет содержаться техническая информация, ключи, имена файлов, а так же алгоритм для расшифровки, который вы можете скопировать в свой проект.
Post Scriptum
Это не очередной велосипед. Данная программа полезна для разного рода (псевдо) библиотек для программы DevelStudio. Для работы ваших программ с шифрованными файлами не потребуется mcrypt (кто пробовал ставить mcrypt, тот знает какая это мука и какие там есть подводные камни).
Программа писалась в первую очередь для себя. Но после нескольких шифрований, понял, что надо её автоматизировать, ввиду чего появились надстройки для программы.