Klucz produktu Windows od wersji XP jest zakodowany w kluczu rejestru
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
w wartości binarnej
DigitalProductId w 30 cyfr w notacji heksadecymalnym po grupowanych w pary liczb (15 par).
Zakodowany klucz jest zapisany od 35 pary liczb w całej wartości DigitalProductId:
W moim przypadku to: "FE 04 00 E8 44 28 31 EE C4 5F F4 F7 92 69 09" (zakodowany klucz Windows 8 Cconsumer Preview).
Następnie ciąg 15 par liczb oddzielone spacją musimy zdekodować.
http://dreamiteam.pl/DekoderDigitalProductID.html
Przykładowy wynik działania dekodera:

Algorytm dekodujący klucz Windows jest ogólnie dostępny - przykład w języku
C#:
//Digital Product ID: FE 04 00 E8 44 28 31 EE C4 5F F4 F7 92 69 09
Char[] ZnakiDozwoloneWKluczuWindows = { '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[] KluczWidnowsa = new Char[25];
System.Byte[] ZakodowanyKlucz = {0xFE, 0x04, 0x00, 0xE8, 0x44, 0x28, 0x31, 0xEE, 0xC4, 0x5F, 0xF4, 0xF7, 0x92, 0x69, 0x09};
int i, j, k;
for (i = KluczWidnowsa.Length - 1; i >= 0; i--)
{
k = 0;
for (j = ZakodowanyKlucz.Length - 1; j >= 0; j--)
{
k = (k << 8) + ZakodowanyKlucz[j];
ZakodowanyKlucz[j] = (System.Byte)(k / 24);
k = k % 24;
}
KluczWidnowsa[i] = ZnakiDozwoloneWKluczuWindows[k];
}
Programy typu Windows Product Key Viewer korzystają z tych samych metod i algorytmu.