В этом посте мы подробнее обсудим обфускацию, где она используется и ее преимущества.

Что такое обфускация?

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

Пример URL-адреса для обфускации кода JavaScript.

Обфускация с помощью danstools.

Исходный код:

function hello(name) {
 console.log('Hello, ' + name); 
} 
hello('New user');

После обфускации:

eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d=k||c}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k)}}return p}('3 0(1){2.4(\'5, \'+1)}0(\'7 6\');',8,8,'hello|name|console|function|log|Hello|user|New'.split('|'),0,{}))

результат работы обеих программ будет одинаковым.

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

Минификация также вид обфускации, здесь пустые места будут удалены, а переменные будут переименованы.

Примеры:

«Уменьшенный файл: https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.5/angular.min.js"

«Исходный файл: https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.5/angular.js"

Почему проекты с открытым исходным кодом запутываются?

  • Размер кода будет уменьшен.
  • В JavaScript время загрузки сократится.

Большинство проектов javascript с открытым исходным кодом минимизированы, чтобы сократить время загрузки и уменьшить размер кода. Во время минификации будет сгенерирован минифицированный файл и файл карты. Используя файл карты, можно получить фактический код. Файл карты для указанного выше файла angular js будет

Файл карты: https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.5/angular.js.map

Почему обфускация?

  • Размер кода будет уменьшен.
  • Скройте бизнес-логику и свой код от других.
  • Обратное проектирование очень сложно.
  • В JavaScript время загрузки сократится.

Обфускация == Шифрование?

Нет, запутывание! = Шифрование.

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

Итог: хорошо запутать код javascript.

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

Поддержите нас одной чашкой кофе :)