Dumm wenn man seinen Windows Lizenzschlüssel verlegt hat und nur noch an die verschlüsselten Informationen aus der Registry oder dem Windows Systeminformationspanel (Windowstaste + Pause) kommt. Damit könnte man die Installtion nicht wieder neu machen da man ja einen ProduktâKey braucht. Da ich das Problem aktuell habe mit Windows 7, und es im Netz keine Java Implementierung gab, hier mal meine:
char[] digits = { 'B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'M', 'P', 'Q', 'R', 'T', 'V', 'W', 'X', 'Y', '2', '3', '4', '6', '7', '8', '9' }; char[] decodedKey = new char[25]; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter 30 character productId hex: "); String binaryCodeStr = br.readLine(); if (binaryCodeStr.length() != 30) throw new IllegalArgumentException("length not equals 30 characters!");
char[] binaryKeyChar = new char[30]; for (int i = 0; i < binaryCodeStr.length(); i++) { binaryKeyChar[i] = binaryCodeStr.charAt(i); } byte[] binaryKey = Hex.decodeHex(binaryKeyChar);
int i, j, k; for (i = decodedKey.length - 1; i >= 0; i--) { k = 0; for (j = binaryKey.length - 1; j >= 0; --j) { k = (k << 8) + (binaryKey[j] & 0xff); binaryKey[j] = (byte) (Math.floor(k / 24d)); k = k % 24; } decodedKey[i] = digits[k]; } StringBuffer result = new StringBuffer(); for (int l = 0; l < decodedKey.length; l++) { result.append(decodedKey[l]); if ((l % 5 == 4) && (l != decodedKey.length - 1)) result.append('-'); } System.out.println(result.toString());
Ich denke jeder der etwas Java kann wird daraus ein lauffähiges Programm erstellen können. Diese Codezeilen dienen ausschliesslich der legalen Nutzung schon vorhandener Lizenzen!
|