Los ofuscadores pueden dificultar que una computadora analice su código. En algunos casos también pueden facilitarlo. Por ejemplo, cuanto más largo sea su código JavaScript, más tiempo le tomará al navegador ejecutarlo. Un optimizador puede revisar y acortar el código reemplazando todos los nombres de las cosas con nombres muy cortos, a, b, c..z, aa, ab, ac..zz, etc. Esto dificulta que un humano entienda lo que hizo originalmente. Sin embargo, no impide que eventualmente lo descubran, descubran y exploten errores, y el código de ingeniería que modifica la funcionalidad del código ofuscado. Simplemente hace que sea difícil para los observadores casuales.
Los lenguajes de programación están destinados a comunicarse. Si bien es cierto que los lenguajes de programación comunican un algoritmo a una computadora, también están destinados a comunicar la intención a los desarrolladores. Cuando ejecuta su código a través de un script de ofuscación, confía mucho en el creador del código de ofuscación. Si alguna vez hay un defecto, los scripts de ofuscación eliminan toda la información que generalmente indicaría al desarrollador original en la dirección correcta. Elimina la intención que es visible en la fuente. Por lo tanto, si la ofuscación presenta algún defecto, usted se hace responsable tanto de su código de ofuscación como del suyo.
Además, su código de ofuscación también se ofusca de usted. Podría introducir defectos intencionales, como puertas traseras, y necesitaría hacer un inventario del código ofuscado para encontrarlo.
- ¿Por qué patrocina Microsoft Apache Software Foundation (desarrollador de OpenOffice)?
- ¿Nuestra capacidad para estimar de manera confiable un proyecto está relacionada con la cantidad de trabajo repetitivo y bien entendido involucrado?
- ¿Qué es la refactorización de código y para qué se utiliza?
- ¿Cuáles son algunas de las cosas excepcionales que debería hacer que impresionarían a las escuelas de posgrado de CS y a las compañías que ofrecen pasantías tecnológicas?
- Si solo pudieras ejecutar Linux y no se te permitiera iniciar un sistema operativo en una máquina virtual, ¿cuál sería tu computadora portátil ideal?
Personalmente, aparte del escenario de JavaScript mencionado anteriormente, no me preocuparía por ofuscar su código. Ya es bastante difícil hacer que las cosas funcionen cuando se supone que deben funcionar. Si le preocupa que su código sea plagiado, la única forma real de protegerlo es no entregarlo.