작은 자바 자체 검사 프로그램 (자체 체크섬)을 수행해야합니다. 여기 내 코드 샘플은Java 자체 검사 프로그램 (자체 체크섬)
public class tamper {
public static int checksum_self() throws Exception {
File file = new File ("tamper.class");
FileInputStream fr = new FileInputStream (file);
int result; // Compute the checksum
return result;
}
public static boolean check1_for_tampering() throws Exception {
return checksum_self() != 0; // TO BE UPDATED!
}
public static int check2_for_tampering() throws Exception {
return checksum_self();
}
public static void main (String args[]) throws Exception {
if (check1_for_tampering()) {
System.exit (-1);
}
float celsius = Integer.parseInt (args[0]);
float fahrenheit = 9 * celsius/5 + 32;
System.out.println (celsius + "C = " + fahrenheit + "F");
}
}
나는 그런 뭔가를 시도
DigestInputStream sha = new DigestInputStream(fr, MessageDigest.getInstance("SHA"));
byte[] digest = sha.getMessageDigest();
for(..)
{
result = result + digest[i]
}
하지만 난 정말를 확인하는 방법을 모른다?
편집 : 답변
아담 Paynter @및 SpoonBenders
에 대한
덕분에 당연히 이건 내 개인적인 사용을위한 것이 아닙니다. 그리고 늘 소프트웨어를 보호하기 위해 그것을 사용 .....
그것은 내가 내 자바 코스해야 할에 "exercice을"의 ...
Java 메소드 이름 표준을주의하십시오. 그것은 C 또는 PHP가 아니 –
개인 관심입니까? 수정에서 코드를 보호하기 위해이 기술을 사용하지 않을 것입니다. –
코드가 클라이언트 측에서만 실행 중이라면 보호하기가 매우 어렵습니다. 다른 한편으로, 일부 소프트웨어는 인터넷 연결이 가능한 경우에만 의미가 있습니다. 이러한 소프트웨어는 ** 매우 ** 효과적으로 ** 보호하기 쉽습니다. 계산을 서버 측 (서버 측에서 완벽하게 제어)에서 수행하면됩니다. ** 아무도 유효한 라이센스가없는 실제 World of Warcraft * economy/Blizzard 서버에서 놀고 있습니다. 아무도. 단 하나의 해적 그룹 만이 그 문제를 해결할 수 없었습니다. * 그게 * 얼마나 강력한 클라이언트/서버 보호가 될 수 있습니다. – SyntaxT3rr0r