2015-02-03 2 views
-2

미안하지만 ... 같은 것에 관해서는 너무 많은 질문이 있지만 어떤 것도 작동하지 않는다는 것을 알고 있습니다.
jar 또는 클래스를 암호화하여 아무도 검색 할 수 없도록하려고합니다.
실제로 응용 프로그램에는 서버 데이터베이스의 사용자 이름과 암호가 있습니다. 따라서 누군가 검색하면 데이터베이스에 무단으로 액세스 할 수 있습니다.
많은 소프트웨어를 사용해 봤는데, exe 파일을 만든 후 쉽게 추출 할 수 있습니다.
내가 무엇을 할 수 있는지 말해주세요.리버스 엔지니어링을 피하기 위해 .class 또는 .jar 파일 암호화

+2

데이터베이스에 직접 연결하는 대신 웹 서비스를 사용하십시오. –

+1

컴파일 된 코드에 자격 증명을 넣지 않아야합니다. 항상 속성 (환경 변수 또는 구성 또는 응용 프로그램 매개 변수)으로 런타임에 전달하십시오. – mwhs

+0

암호 만 암호화하십시오. –

답변

-1

해결책을 얻었습니다.
ProGuard는 리버스 엔지니어링에서 클래스 또는 jar를 안전하게 지키는 최고의 소프트웨어입니다.
사용 후 누구나 암호 해독을 시도하면 암호가 변경되어 이해할 수 없습니다.

+0

@vincent가 말했듯이 접근법은 문제를 해결하기에 좋은 방법이 아닙니다. ProGoard 사이트에서 "프로그램과 라이브러리를 리버스 엔지니어링하기가 더 어려워진다." 그건 안전 할 것 같지 않아. –

1

속성 파일을 사용할 수 있습니다. 병 밖으로 외부화하십시오. "getResourceAsStream"또는 이와 유사한 정보를 통해 정보를 검색하십시오.

두 번째 해결 방법은 JNDI 구성을 사용하는 것입니다. 따라서 jar 파일에서 이름을 정의하면 웹 서버가 연결의 모든 속성을 선언합니다.

+0

예를 들어 설명해주십시오 ... 좋은 것처럼 들리지만 ... 속성 파일에 어떤 형식으로 작성해야합니까? JNDI 구성에 대해 잘 모르는 경우에도 설명하십시오. –

+0

http://stackoverflow.com/questions/4085420/how-do-i-read-a-properties-file-and-connect-a-mysql-database 스프링을 사용하면 더 쉬울 수도 있고, 클래스 패스에 파일을 추가하는 것을 잊지 마십시오. JNDI의 경우 응용 프로그램 서버에 따라 다르므로 검색을 허용합니다. tomcat에 대한 정보는 다음과 같습니다. http://tomcat.apache.org/tomcat-7.0-doc/jndi-resources-howto.html – vincent

+0

if i .properties 또는 .config에 사용자 이름과 암호를 입력하면 메모장에서 쉽게 열 수 있습니다. 기밀 데이터를 숨기거나 암호화하는 것으로는 충분하지 않다고 생각합니다. –

관련 문제