base24 = "BCDFGHJKMPQRTVWXY2346789"
# Takes an iterable of the hex from positions 52 to 66 from the registry key:
# HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Registration\{[a-z0-9]+}\DigitalProductID
# Converts the hex into the standard (base 24) representation of the key
def conv_base24(data):
data = [x for x in data[::-1]]
sum = 0
for i in data:
sum = 2**8 * sum + i # Each number is an 8 bit hex value
#convert the decimal into base 24.
result = ""
for i in range(25):
if i % 5 == 0 and i != 0:
result = "-" + result
result = str(base24[sum%24]) + result
sum = sum/24
return result
YmFzZTI0ID0gIkJDREZHSEpLTVBRUlRWV1hZMjM0Njc4OSIKCiMgVGFrZXMgYW4gaXRlcmFibGUgb2YgdGhlIGhleCBmcm9tIHBvc2l0aW9ucyA1MiB0byA2NiBmcm9tIHRoZSByZWdpc3RyeSBrZXk6CiMgSEtFWV9MT0NBTF9NQUNISU5FXFNPRlRXQVJFXE1pY3Jvc29mdFxPZmZpY2VcMTIuMFxSZWdpc3RyYXRpb25ce1thLXowLTldK31cRGlnaXRhbFByb2R1Y3RJRAojIENvbnZlcnRzIHRoZSBoZXggaW50byB0aGUgc3RhbmRhcmQgKGJhc2UgMjQpIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBrZXkKZGVmIGNvbnZfYmFzZTI0KGRhdGEpOgogIGRhdGEgPSBbeCBmb3IgeCBpbiBkYXRhWzo6LTFdXQogIHN1bSA9IDAKICBmb3IgaSBpbiBkYXRhOgogICAgc3VtID0gMioqOCAqIHN1bSArIGkgIyBFYWNoIG51bWJlciBpcyBhbiA4IGJpdCBoZXggdmFsdWUKCiAgI2NvbnZlcnQgdGhlIGRlY2ltYWwgaW50byBiYXNlIDI0LgogIHJlc3VsdCA9ICIiCiAgZm9yIGkgaW4gcmFuZ2UoMjUpOgogICAgaWYgaSAlIDUgPT0gMCBhbmQgaSAhPSAwOgogICAgICByZXN1bHQgPSAiLSIgKyByZXN1bHQgCiAgICByZXN1bHQgPSBzdHIoYmFzZTI0W3N1bSUyNF0pICsgcmVzdWx0CiAgICBzdW0gPSBzdW0vMjQKICByZXR1cm4gcmVzdWx0