You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.4 KiB
58 lines
1.4 KiB
import java.security.MessageDigest;
|
|
String dpr;
|
|
|
|
static String UNLICENSED = "Unlicensed";
|
|
|
|
class License extends Object {
|
|
int demotime = 1800;
|
|
long sessionT;
|
|
String[] licenseKey;
|
|
protected boolean valid = false;
|
|
MessageDigest md;
|
|
|
|
public License() {
|
|
sessionT = (new Date()).getTime();
|
|
dpr = "";
|
|
if (DEBUG) dpr = "/Users/markqvist/Documents/Processing/midikatapult/";
|
|
licenseKey = loadStrings(dpr+"license.txt");
|
|
try {
|
|
//println("License test running...");
|
|
md = MessageDigest.getInstance("MD5");
|
|
|
|
String[] components = split(licenseKey[0], "-");
|
|
String id = licenseKey[0].substring(0, 6);
|
|
String checksum = components[1];
|
|
//println("id: "+id);
|
|
//println("checksum: "+checksum);
|
|
md.reset();
|
|
md.update(id.getBytes("UTF-8"));
|
|
byte[] digest = md.digest();
|
|
String gens = "";
|
|
for (int i = 0; i < digest.length; i++) {
|
|
gens += digest[i];
|
|
//print(" "+(int)digest[i]+" ");
|
|
}
|
|
gens = id + gens;
|
|
//println();
|
|
//println("F:"+licenseKey[0]);
|
|
//println("G:"+gens); // REMOVE!!!
|
|
if (licenseKey[0].equals(gens)) {
|
|
valid = true;
|
|
UNLICENSED = "";
|
|
}
|
|
} catch (Exception e) { };
|
|
}
|
|
|
|
public boolean isValid() {
|
|
return valid;
|
|
}
|
|
}
|
|
|
|
boolean demoIsValid() {
|
|
long now = (new Date()).getTime();
|
|
if (now - license.sessionT < license.demotime*1000) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|