Ich muss ein kleines Java-Selbstprüfprogramm (Selbstprüfsumme) machen. hier mein CodebeispielJava-Selbstprüfprogramm (selbstüberprüfend)
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");
}
}
Ich habe versucht, so
DigestInputStream sha = new DigestInputStream(fr, MessageDigest.getInstance("SHA"));
byte[] digest = sha.getMessageDigest();
for(..)
{
result = result + digest[i]
}
etwas zu tun, aber dann, wie ich weiß nicht wirklich, dass überprüfen ??
EDIT:
Vielen Dank für Ihre Antworten
@ Adam Paynter und SpoonBenders
Das ist natürlich nicht für den persönlichen Gebrauch. Und ich, dass gewohnt verwenden keine Software zu schützen .....
Es ist ein „Exercice“ ich für meine Java-Kurs zu tun haben ...
Bitte beachten Sie Java Method Name Standards. es ist nicht C oder php –
Ist das für persönliches Interesse? Ich würde mich nicht auf diese Technik verlassen, um den Code vor Modifikationen zu schützen. –
Wenn Ihr Code nur auf der Client-Seite läuft, ist es sehr schwer zu schützen. Auf der anderen Seite macht einige Software nur Sinn, wenn eine Internetverbindung verfügbar ist. Solche Software ist trivial, um sehr effektiv zu schützen: Machen Sie einen Teil der Berechnung auf der Serverseite (Serverseite, die Sie vollständig kontrollieren). Denken Sie daran: ** Niemand ** spielt auf den echten * World of Warcraft * economy/Blizzard-Servern, ohne eine gültige Lizenz zu besitzen. Niemand. Keine einzige Piratengruppe schaffte es, das zu umgehen. * Das ist, wie mächtig Client/Server-Schutz sein kann. – SyntaxT3rr0r