Схемы шифрования (или кодировщика) пытаются скрыть ваш код в виде зашифрованного файла. Очевидно, что код должен быть расшифрован во время выполнения, что добавляет бесполезные накладные расходы.
Некоторые из них также настаивают на том, чтобы хост-система установила специальные подпрограммы, которые хостерам очень не нравятся, потому что они не хотят устанавливать специальные конфигурации только для вас. Но плохая часть заключается в том, что они содержат семена своего собственного уничтожения: для запуска на целевом хосте они должны содержать программное обеспечение для расшифровки. Поэтому, если вы используете один из них, вы предоставляете тот самый расшифровщик, который необходим для получения кода. Это только вопрос его нахождения; найденный код полностью расшифрован и разоблачен. Это просто небезопасно.
Запутывание Схемы шифруют имена идентификаторов, удаляют комментарии и форматирование. Но запутанный код работает точно так же, как и оригинал, без дополнительных затрат и не требует специальной поддержки во время выполнения. Обфускаторы зависят от внутренней сложности понимания программ в целом. Программы достаточно сложны для понимания, когда они хорошо спроектированы, имена выбраны правильно, и в коде есть хорошие комментарии. Мы все надеемся, что наши программы хорошо разработаны, но если названия плохие, а комментарии пропали, их будет довольно сложно понять. Проверьте свой собственный опыт работы с чужим кодом.
Люди скажут: «Но любой может осмотреть запутанный код и понять его». Это правда, если у вас есть крошечное приложение. Если ваше приложение имеет какой-либо масштаб (десятки страниц кода), чрезвычайно трудно понять, что оно делает, когда все имена переменных зашифрованы. Чем больше ваш код, тем лучше запутывание при его защите.
Если вы хотите увидеть примеры того, что делает один PHP-обфускатор, см. Наш Thicket PHP Obfuscator .