Java 프로그램에 라이센스 기능을 추가하는 방법은 무엇입니까? [닫은

StackOverflow https://stackoverflow.com/questions/1626163

문제

나는 Java로 신청했습니다. 이제 여러 고객에게 전달하고 싶습니다. 각 클라이언트가 해당 소프트웨어를 사용하기 위해 직렬 키를 구매해야합니다. 이 키가 없으면 소프트웨어는 시장의 다른 소프트웨어와 마찬가지로 실행해서는 안됩니다.

어떻게 할 수 있습니까?

나는 그것을 완전히 보호 할 수 없다는 것을 알고 있습니다. 나는 단순한 직렬 키 기능을 원하므로 비 기술적 인 사람과 초보자 프로그래머가 보안을 깨뜨리기가 어려울 수 있습니다.

도움이 되었습니까?

해결책

나는 언급했다 easylicencer (괜찮은 수준을 제공합니다 보호 이전의 리버스 엔지니어링) 대답. 토론에서 다른 옵션을 찾을 수 있습니다. 오픈 소스 솔루션의 경우 Truelicense 도서관 컬렉션 그러나 더 많은 작업이 필요할 수 있습니다.

다른 팁

기성품 라이브러리가 있습니다. (빠른 Google 검색은 jlicense, 예를 들어.) 그러나 자신의 메커니즘을 구현하는 것은 어렵고 유연하지 않습니다. 한 가지 간단한 접근 방식은 고객 이름의 SHA-1 해시와 하드 코딩 된 소금을 계산하는 것입니다. 결과를 영숫자로 인코딩하면 라이센스 키가 있습니다. 이제 누군가가 제품을 설치하려고하면 고객 이름과 라이센스 키를 요청하십시오. 해시를 다시 작성하여 사용자가 키를 인증하기 위해 제공 한 고객 키와 비교하십시오.

그것은 단 하나의 간단한 예일뿐입니다. 일부 데이터를 암호화하고 키에 저장하는 등 모든 종류의 일이 있습니다 (예 : 만료 날짜 또는 잠금 해제 된 기능의 하위 집합). 원하는만큼 단순하거나 복잡하게 만들 수 있습니다.

그러나 분산 인증 시스템을 사용하지 않는 한 충분한 기술과 동기 부여를 가진 사람에 의해 당신이 제시 한 모든 솔루션을 리버스 엔지니어링 할 수 있음을 명심하십시오. 이것은 C 또는 C ++와 같은 기본 편집 언어보다 Java에서 달성하기가 더 쉽습니다. 코드를 난독 화하면 도움이 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top