Как обсуждалось в комментариях - обфускация в интерпретируемом языке практически невозможна. Это связано с тем, что браузер должен иметь возможность читать ваш код как действительный JavaScript, чтобы иметь возможность его запускать - если браузер может это сделать, так может быть достаточно человек! Любые сервисы, которые утверждают, что могут запутать JavaScript, просто предлагают «безопасность через неизвестность» - то есть, делая его более трудоемким для декодирования или менее легким для понимания.
Например, я посмотрел the site you linked in your question. Вот мой код ввода:
console.log("test");
И вот результат:
var _0xdef6=["\x74\x65\x73\x74","\x6C\x6F\x67"];console[_0xdef6[1]](_0xdef6[0])
Это выглядит довольно безопасным, на первый взгляд, и это может быть достаточно, чтобы отпугнуть некоторые менее преданный реверс-инженер. Тем не менее, это на самом деле довольно просто расшифровать:
// t e s t l o g
var values = ["\x74\x65\x73\x74", "\x6C\x6F\x67"];
console[values[1]](values[0]);
Внезапно, все это довольно очевидно - инструмент взял значение и идентификаторы из входного кода, превратил их в ASCII шестнадцатеричных кодов, и хранить их в виде цепочки в массив.
Теперь, по общему признанию, настоящая программа была бы намного дольше, чем это, и, вероятно, было бы труднее декодировать, но мой вопрос остается тем же - если я смогу выяснить, как их обфускатор работает для небольшой программы в течение моего обеденного перерыва, это вряд ли защитит ваш код от любой серьезной попытки обратной инженерии!
Любая обфускация, которую вы выполняете на клиентском JavaScript, на самом деле не поможет - код действительно должен быть интерпретирован на клиентском устройстве, поэтому все, что вы делаете с ним, должно быть обратимым. Каковы ваши рассуждения о том, что вы хотите запутать свой код? –
мой босс назначил мне задачу защитить приложение от обратной инженерии. i google и узнал, что его процедура обфускации кода. Я использовал jquery, html для приложения, т. Е. Его гибрид @JoeClay – Asad
sp причина заключается в том, чтобы запутать его, чтобы никто не мог его понять @JoeClay – Asad