아무도 jar 파일 내부의 .class 파일에 액세스 할 수 없도록 .jar 파일을 암호화해야하는 프로젝트에서 작업 중입니다 .... 자바 코딩이 있습니다. .jar 파일을 암호화하는 데 도움이 될 수 있습니까?.jar 파일을 암호화하는 방법
답변
jar 파일을 암호화하더라도 JVM이이를 실행하려면 먼저 암호를 해독해야하므로 JVM에서 해독하고로드하는 클래스가 포함 된 다른 jar 파일이 필요합니다.
이 두 번째 jar 파일 자체는 암호화 할 수 없기 때문에 클래스 파일을보고 싶은 악의적 인 사용자는이 두 번째 jar 파일의 클래스를보고 간단하게 비밀 암호 jar 파일의 암호를 해독하고 액세스 할 수 있습니다.
아마도 난독 화기를 사용하여 코드의 보안을 강화할 수는 있지만 클래스 파일을 사용하지 못하게하는 경우 디 컴파일에서 보호해야합니다 (더 어렵지는 않지만 불가능할 수 있음).
난독 화가 충분하지 않으면 jar 파일을 Windows 용 DLL로 컴파일하거나 unix/linux 용으로 컴파일 할 것을 고려할 수 있습니다. 이렇게하면 디 컴파일이 훨씬 어려워 질 수 있지만 항상 올바르게 수행 할 수있는 것은 아닙니다. 일반적으로 PITA. GCJ는 이것을 어떻게 든 할 수 있으며 실제로 .class/.jar를 기계어 코드로 직접 컴파일 할 다른 상용 제품이 있습니다.
그러나 클라이언트 컴퓨터가이를 실행할 수 있어야하고 읽을 수 있어야하므로 코드가 노출 될 때마다 보안 수준에 관계없이 얼마나 많은 보안을 적용 할 것인지 고려해야합니다. 단단하게 만들 수 있습니다.
비밀리에 알고있는 알고리즘이 있다면 무엇이든 상관없이 공개하고 웹 서비스로 변환하여 서버에서 호스팅하므로 실제 코드를 보낼 필요가 없습니다. 또한 클라이언트 컴퓨터는 중요한 부분에 대한 액세스를 확인하여 응용 프로그램의 무단 복제를 방지 할 수 있습니다.
아니요. 프로그램에서 코드를 실행할 수 있어야하므로 어쨌든 무의미합니다.
.class 파일을 디 컴파일하면 코드가 덜 복잡해 지므로 (예 : 의미없는 변수/클래스 이름 등) 코드가 흐릿 해집니다.
표준 JVM에서는 지원되지 않습니다. 하지만 다음과 같이 할 수 있습니다. 신청서를 2 부분으로 나누십시오. 먼저 암호화되지 않습니다. 그것은 사용자 정의 클래스 로더를 사용하여 나머지를 인스턴스화하는 간단한 로더가 될 것입니다. 이 클래스 로더는 클래스를 바이트 배열로 가져와 해독하고로드합니다.
이것은 사람들이 사용하는 방법이지만 사용자 정의 클래스 로더를 디 컴파일하여 보안을 깨뜨릴 수 있습니다. 해독 된 코드를 읽을 수있는 것처럼 해독 된 코드를 작성할 수 있습니다. :) – carlspring
jar 파일 내부의 클래스 파일에 대한 액세스를 제공하지 않으려면 왜 jar 파일에 응용 프로그램을 제공해야합니까? 당신의 질문이 개념적으로 틀린 것 같아서 ...
사용자 정의 클래스 로딩 방법이 필요하다면, 사용자 정의 클래스 로더를 사용해보십시오.
내 .jar 파일을 .class 파일을 .jar 파일에서 액세스 할 수 없도록 저장할 수 있습니까? –
필자는 숙련 된 자바 코더가 사용하는 (또는 쓰는) Java 도구를 리버스 엔지니어링 할 수 있고 여전히 응용 프로그램의 jar 파일을 디코딩 할 수 있다는 사실을 알고 있다고 가정합니다. 또한 "암호화 된"코드를 읽는 사용자 정의 클래스 로더를 작성하면 디 컴파일이 가능하고이를 우회 할 수있는 도구를 작성할 수 있습니다.
난독 화 및 바이트 코드 수정 및 사용자 정의 클래스 로더를 사용하는 경우에도 Java는 해킹 가능/디 컴파일 가능이며 소스는 거의 항상 읽기 쉬운 상태가 될 수 있습니다.
jar 파일을 암호화하지 않고 난독 화하고 싶습니다.
Java에서이 작업을 수행하는 가장 일반적인 방법은 ProGuard입니다.
나는 jCrypt을 선호합니다! jar 파일로 패키징하는 경우 클래스 (및 자원)
을 암호화할 수있는 간단한 도구입니다. jarname.ABCD 또는 오해의 소지가있는 확장명으로 이름을 바꾸거나 확장명을 제거하기 만하면됩니다. 응용 프로그램의 jar 이름.
응용 프로그램 시작시 암호 또는 라이센스 확인을 입력하십시오. 적절한 인증을 사용하면 사용자 만 애플리케이션을 더 실행할 수 있습니다.
암호 확인을 위해 개인 공개 키 생성 개념을 생성해야합니다. 라이센스의 경우 일부 설치된 소프트웨어 또는 연결된 하드웨어를 사용하여 액세스를 제공 할 수 있습니다.
- 1. python : 파일을 암호화하는 방법?
- 2. PHP에서 xml 파일을 암호화하는 방법
- 3. log4net 로그 파일을 암호화하는 방법
- 4. 어도비 에어에서 파일을 암호화하는 방법
- 5. Jar 파일을 분석하는 방법?
- 6. XOR을 사용하여 음악 파일을 암호화하는 방법
- 7. 앱 엔진 BLOBSTORE에서 zip 파일을 암호화하는 방법
- 8. as3에서 .jar 파일을 사용하는 방법
- 9. 기존 Jar 파일을 업데이트하는 방법
- 10. Eclipse에서 jar 파일을 실행하는 방법
- 11. Eclipse에서 jar 파일을 여는 방법
- 12. html 파일을 암호화하는 방법은 무엇입니까?
- 13. SQL 파일을 암호화하는 더 좋은 방법이 있습니까?
- 14. pdf 형식을 암호화하는 방법
- 15. C에서 폴더를 암호화하는 방법 #?
- 16. 암호문을 암호화하는 방법
- 17. InstallScript를 사용하여 문자열을 암호화하는 방법
- 18. maven 추가 jar 파일을 배포하십시오.
- 19. iphone 응용 프로그램에 jar 파일을 포함하는 방법
- 20. 자동으로 매니페스트 파일에 jar 파일을 포함하는 방법
- 21. JAR 유틸리티를 사용하여 .par 파일을 압축하는 방법
- 22. .PFX 파일을 사용하여 JAR 파일에 서명하는 방법
- 23. 그라인더 프로젝트에 외부 jar 파일을 추가하는 방법
- 24. JRuby를 사용하여 Jar 파일을 읽는 방법
- 25. GWT 프로젝트에 외부 Jar 파일을 추가하는 방법
- 26. 다른 jar 파일을 사용하여 jar 파일을 시작하고 중지하려면 어떻게합니까?
- 27. Maven : jar 파일을 추출하십시오.
- 28. Eclipse에서 jar 파일을 실행합니다.
- 29. Maven - jar 파일을 대체하십시오.
- 30. j2me에서 jar 파일을 다운로드하십시오.
사실 .class 파일을 측면에서 .jar 파일로 보호하려면. 어쨌든이 작업을 수행 할 수 있습니까? –
AlexR의 제안은 실행 가능한 JAR 파일을 직접 해독 할 수있는 사용자 정의 클래스 로더를 사용하는 것입니다. JAR 파일을 실행하는 평균 숙련 된 프로그래머라면 누구나 할 수 있습니다. 어쨌든 사용자 정의 클래스 로더를 리버스 엔지니어링하고 클래스에 액세스하십시오. 나는 다른 해결책으로 단락을 추가했으나 아주 드물다. 어떤 응용 프로그램과 함께 –