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!
|