Почему такие странные имена в декомпилированом коде?

Решил я декомпилировать код инстаграма и игры Bomb Squad, так как хотел посмотреть как реализовать некоторые вещи. Вот только когда я это сделал увидел следующую картину во всех файлах(и именах файлов тоже): все имена переменных, классов, методов названы странными именами. код инстаграма

Я подумал что только разработчики инстаграма так делают, но когда декомпилировал Bomb Squad, увидел тоже: введите сюда описание изображения

Когда декомпилировал свой код, все имена были прежнимы. Теперь не понимаю зачем так делают


Ответы (1 шт):

Автор решения: Konstantin_SH

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

Чтоб интеллектуальную собственность как-то защитить код шифруют (подвергают обфускации) на этапе компиляции. На этапе разработки имена классов и переменных вполне развернутые и понятные. На хабре про то, как делать так же есть интересная статья.

→ Ссылка