[javascript] 자바스크립트 코드 난독화와 암호화의 차이점은 무엇인가?

1. 코드 난독화(Obfuscation)

코드 난독화는 주로 가독성을 떨어트려 코드 분석을 어렵게 만드는 기술입니다. 변수명을 압축하거나 변경하고, 함수를 재배치하거나 불필요한 코드를 추가함으로써 원본 코드의 구조를 변형시킵니다. 그 결과, 코드를 해석하거나 역공학으로부터 보호할 수 있습니다. 그러나 이러한 변형된 코드는 여전히 실행 가능하며, 암호화된 것은 아닙니다.

2. 코드 암호화(Encryption)

반면에, 코드 암호화는 실제로 코드를 암호화하여 원본 코드를 읽을 수 없게 만드는 것을 의미합니다. 암호화된 코드는 특정 키나 인증 정보 없이는 해독될 수 없으며, 실행이나 분석을 방해할 수 있습니다. 하지만 이 경우, 실행할 때에는 필요한 키나 복호화 과정이 필요하며, 이는 코드를 실행하는 환경에서 제공되어야 합니다.

따라서, 코드 난독화는 코드를 해석하거나 역공학으로부터 보호하는 데 사용되고, 코드 암호화는 코드를 읽을 수 없게 만들고 실행을 방해하는 데 사용됩니다.

난독화 기술은 JavaScript-obfuscator와 같은 오픈 소스 도구를 사용하여 수행할 수 있으며, 코드 암호화는 JavaScript 암호화 모듈 및 서비스를 사용하여 수행될 수 있습니다.

참고 자료:

  1. https://en.wikipedia.org/wiki/Obfuscation_(software)
  2. https://en.wikipedia.org/wiki/Encryption