Drag & Drop, Upload or Paste Jar Files

(Maximum file size: 1M, Maximum number of files: 1)
Upload compiled Java JAR files for code protection. Source code will be obfuscated to prevent reverse engineering.

자바 코드 난독화 도구란?

자바 코드 난독화는 읽기 쉬운 자바 바이트코드를 기능적으로는 동일하지만 이해하기 어려운 버전으로 변환하는 과정입니다. 자바 소스 파일을 JAR나 WAR 아카이브로 컴파일하면, JD-GUI나 CFR 같은 디컴파일러로 쉽게 살펴볼 수 있는 클래스 이름, 메서드 시그니처, 문자열 리터럴이 바이트코드에 그대로 남아 있습니다. 저희 자바 코드 난독화 도구를 사용하면 컴파일된 JAR나 WAR 파일을 업로드하고 업계 표준 난독화 기법(클래스와 메서드를 의미 없는 식별자로 이름 바꾸기, 디버그 메타데이터 제거, 포함된 문자열 리터럴 암호화)을 적용할 수 있습니다. 결과물은 모든 자바 가상 머신에서 완벽하게 실행되지만 리버스 엔지니어링 시도를 막아주는 보호된 아카이브입니다. 이 도구는 브라우저에서 전적으로 실행되므로 설치나 서버 측 처리가 필요 없어, 빠르고 신뢰할 수 있는 코드 보호가 필요한 개발자에게 이상적입니다.

난독화는 암호화가 아니기 때문에, 민감한 상수나 설정 문자열을 위한 선택적 암호화 계층도 함께 제공합니다. 이 도구는 가벼운 난독화(빠른 이름 변경)와 강력한 난독화(제어 흐름 평탄화, 문자열 암호화, 리소스 숨기기)를 모두 지원합니다. 상용 라이브러리 배포, 클라이언트 측 자바 애플릿, 또는 Spring Boot 마이크로서비스 등 배포 요구 사항에 따라 보호 수준을 선택할 수 있습니다. 출력물은 표준 자바 런타임(JDK 8+)과 완벽하게 호환되며 기존 서명이나 ProGuard 규칙 같은 보안 프레임워크를 존중합니다.

주요 기능

  • 원클릭 난독화 – 복잡한 규칙을 설정할 필요 없이 JAR, WAR 또는 클래스 파일을 업로드하고 바로 프로세스를 시작합니다.
  • 다중 난독화 수준 – 기본 이름 변경, 문자열 암호화, 제어 흐름 난독화, 완전 고강도 보호 중에서 선택할 수 있습니다.
  • JAR / WAR 무결성 유지 – 원본 아카이브 구조, 매니페스트 파일, 종속성 메타데이터를 보존하여 애플리케이션이 정상적으로 로드되도록 합니다.
  • 크로스 플랫폼 브라우저 도구 – Windows, macOS, Linux에서 모두 작동하며, 컴퓨터에 자바 런타임 설치가 필요 없습니다.
  • 즉시 다운로드 – 처리 후 보호된 아카이브를 한 번의 다운로드로 받아 배포나 배포에 바로 사용할 수 있습니다.
  • 안전하고 비공개적 – 모든 변환은 WebAssembly를 사용하여 클라이언트 측에서 이루어지며, 코드가 브라우저를 떠나지 않습니다.

How to Obfuscate Java Code Online

  1. ToolFK 사이트에서 자바 코드 난독화 도구 페이지로 이동합니다.
  2. 업로드 영역을 클릭하고 JAR, WAR 또는 컴파일된 클래스 파일을 선택합니다. 파일을 페이지에 끌어다 놓을 수도 있습니다.
  3. 난독화 수준을 선택합니다. Basic은 빠른 이름 변경, Medium은 문자열 암호화 추가, Heavy는 제어 흐름 난독화와 리소스 숨기기를 포함합니다.
  4. (선택 사항) 문자열 암호화 토글을 활성화하여 데이터베이스 URL이나 API 키 같은 민감한 리터럴을 보호합니다.
  5. 난독화 버튼을 클릭하고 도구가 파일을 처리하는 동안 몇 초 기다립니다. 진행 상황이 실시간으로 표시됩니다.
  6. 완료되면 다운로드를 클릭하여 난독화된 아카이브를 저장합니다. 원본 파일을 이 보호된 버전으로 교체하여 배포하세요.

최적 사용 사례

  • 상용 자바 라이브러리 보호 – 경쟁업체가 독점 알고리즘이나 비즈니스 로직을 쉽게 디컴파일하지 못하도록 방지합니다.
  • 클라이언트 측 자바 애플릿 보안 – 웹을 통해 배포될 때 코드 도난 위험을 줄이기 위해 애플릿 클래스를 난독화합니다.
  • 클라우드 배포용 JAR 준비 – AWS, GCP, Azure에 업로드하기 전에 사용하여 누군가 아카이브에 접근하더라도 설정 문자열을 보호합니다.
  • Spring Boot / 마이크로서비스 아티팩트 난독화 – WAR 파일 내부의 민감한 엔드포인트, 인증 클래스, 비밀 키를 보호합니다.
  • 레거시 애플리케이션에 추가 보안 계층 제공 – 최신 암호화 프레임워크로 쉽게 다시 작성할 수 없는 오래된 자바 프로젝트를 보호합니다.

관련 도구

Frequently Asked Questions

난독화가 자바 애플리케이션의 성능에 영향을 미치나요?

난독화는 주로 클래스와 메서드의 이름을 바꾸므로 런타임 오버헤드가 전혀 없습니다. 그러나 제어 흐름 난독화나 문자열 암호화를 활성화하면 난독화된 코드를 처음 실행할 때 약간의 CPU 비용(보통 5% 미만)이 발생할 수 있습니다. 보안이 중요한 애플리케이션에는 추가 보호가 그만한 가치가 있습니다. 강한 난독화를 적용하기 전에 작은 JAR로 도구를 테스트하여 영향을 측정해 보세요.

여러 종속성이 포함된 WAR 파일을 난독화할 수 있나요?

네. 저희 도구는 WEB-INF/lib 안에 중첩된 라이브러리를 포함한 표준 WAR 아카이브를 처리합니다. 선택한 클래스(또는 아카이브의 모든 클래스)만 처리합니다. 이미 난독화된 종속성(예: 타사 라이브러리)은 명시적으로 난독화를 선택하지 않는 한 건드리지 않습니다. 난독화 후 웹 애플리케이션이 여전히 올바르게 배포되는지 항상 확인하세요. 스테이징 서버에서 먼저 테스트하는 것을 권장합니다.

난독화된 코드는 자바 리플렉션과 여전히 호환되나요?

이름이 바뀐 클래스와 메서드는 하드코딩된 문자열 이름을 사용하는 리플렉션 호출을 깨뜨립니다. 이 문제를 해결하려면 도구에서 제공하는 매핑 파일을 유지하고 런타임에 난독화된 이름을 조회하도록 리플렉션 코드를 업데이트하세요. 외부 접근을 유지해야 하는 경우 공용 API 메서드를 보존하는 옵션도 제공합니다.

이 도구는 ProGuard나 YGuard와 어떻게 비교되나요?

저희 웹 도구는 단순성에 초점을 맞추고 있습니다. CLI 도구를 설치하거나 설정 파일을 작성할 필요가 없습니다. ProGuard는 훨씬 세분화된 제어(축소, 최적화, 사전 검증)를 제공하지만 학습 곡선이 필요합니다. 빠른 일회성 난독화나 잠긴 머신에서 작업하는 개발자에게는 브라우저 기반 솔루션이 이상적입니다. 기본 난독화 엔진은 유사한 이름 변경 및 제어 흐름 기법을 사용합니다.

이미 난독화된 코드가 포함된 JAR를 난독화하면 어떻게 되나요?

도구는 이전에 난독화된 식별자(예: 한 글자 이름)를 감지하여 기본적으로 해당 클래스를 건너뜁니다. 이 설정을 재정의하여 모든 것을 다시 난독화할 수 있지만, 이중 난독화는 때로 잘못된 바이트코드를 생성할 수 있습니다. 항상 자바 프로젝트의 원본 클린 빌드를 난독화하는 것이 좋습니다.

업로드한 파일이 서버에 저장되나요?

아니요. 모든 처리는 WebAssembly 모듈을 사용하여 브라우저 내에서 전적으로 이루어집니다. 업로드하는 코드는 로컬에서 읽히며 네트워크로 전송되지 않습니다. 페이지를 닫으면 데이터가 사라집니다. 추가 프라이버시를 위해 시크릿 또는 개인 브라우저 창에서 도구를 사용할 수 있습니다.

마지막 업데이트: 2026년 7월 1일