Обфускация php кода, как и зачем это нужно?

Интересное слово обфускация не каждый выговорит с первого раза, да и код который проходит обфускацию будет не сразу приведен в нормальное состояние или вообще не будет приведен в него, однако обрабатываться апачем будет так же хорошо как и до обфускации.

Обфускация (от лат. obfuscate — затенять, затемнять; и англ. obfuscate — делать не очевидным, запутанным, сбивать с толку) или запутывание кода — приведение исходного текста или исполняемого кода программы к виду, сохраняющему ее функциональность, но затрудняющему анализ, понимание алгоритмов работы и модификацию при де компиляции.

Говоря языком простых смертных это действия которые затрудняют восприятие кода, не путайте с закрытием кода zend’ом или ioncube это разные вещи. Как говорит нам документация к php «имя переменной в PHP может состоять из любых символов, код ASCII которых старше 127» то есть названия переменных могут состоять из русских символов и даже из некоторых не печатных символов.

Представьте себе такую картину, вы открываете исходный код и видите подобную картину

function data($ , $ ) { $ =strlen($ ); $ =strlen($ ); for($ =0, $ =0; $ <$ ; $ ++, $ ++) { if($ == $ ) $ =0; $ [$ ] = $ [$ ] ^ $ [$ ]; } return $ ; }

согласитесь восприятие кода не совсем хорошее, однако работать он будет так же как и нормальный.

Зачем нужна обфускация:

1. Демонстрация своих знаний в области того или иного языка программирования, так как хороший обфускатор напишет далеко не каждый.

2. Как правило код прошедший обфускацию занимает меньше места, однако это бывает не всегда

3. Затруднение декомпиляции/отладки и изучения вредоносных программ с целью предотвращения обнаружения вредоносной функциональности.

ну и самая распространенная цель это

4. Защита своего код от копирования и защита от обхода проверки лицензий.

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