Apr19
DigitalProductID Decode Algorithm
Filed under Windows
Some licence keys for a Microsoft software creates a DigitalProductID in the Windows registry. For example, you might find the digital product id for your Microsoft Windows in your registry at: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion
The following algorithm shows you howto decode the digital product id to fetch your raw product key. If you loose your product key, this should help you to get it back without spending money. Please use this knowledge only for legal use! This is the onliest limitation to the following algorithm:
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];
System.Byte[] BinaryKey = {0x7f, 0x6a, 0x51, 0x4c, 0x8e, 0x5a, 0x91, 0x56, 0xea, 0x34, 0x77, 0x1a, 0xb7, 0xf2, 0x02}; // Not really a working key :-)
int StartOffset = 0x34;
int i, j, k;
String Result = "";
for (i = DecodedKey.Length-1; i >= 0; i --)
{
k = 0;
for (j = BinaryKey.Length-1; j >= 0; j--)
{
k = (k << 8) + BinaryKey[j];
BinaryKey[j] = (System.Byte)(k / 24);
k = k % 24;
}
DecodedKey[i] = Digits[k];
}
You got the raw decoded key in the Result variable. After decoding, you have to format the product key e.g. adding “-” after every 5th char and so on. I used Microsoft .NET Framework and C# to access the registry and decode the byte progression.








