Embedded file name: kgv7.py
import string
import random
import sha
BASE16 = '0123456789ABCDEF'
BASE30 = '123456789ABCDEFGHJKLMNPQRTVWXY'
def randomstring(size = 20, chars = string.ascii_uppercase + string.digits):
return ''.join((random.choice(chars) for _ in range(size)))
def BaseConvert(number, fromdigits, todigits, ignore_negative = True):
if not ignore_negative and str(number)[0] == '-':
number = str(number)[1:]
neg = 1
else:
neg = 0
x = long(0)
for digit in str(number):
x = x * len(fromdigits) + fromdigits.index(digit)
res = ''
while x > 0:
digit = x % len(todigits)
res = todigits[digit] + res
x /= len(todigits)
if neg:
res = '-' + res
return res
def AddHyphens(code):
return code[:5] + '-' + code[5:10] + '-' + code[10:15] + '-' + code[15:]
def SHAToBase30(digest):
tdigest = ''.join([ c for i, c in enumerate(digest) if i / 2 * 2 == i ])
result = BaseConvert(tdigest, BASE16, BASE30)
while len(result) < 17:
result = '1' + result
def loop(ecx, lichash):
part = 0
for c in lichash:
part = ecx * part + ord(c) & 1048575
rng = AddHyphens('CN' + randomstring(18, '123456789ABCDEFGHJKLMNPQRTVWXY'))
print 'License id: ' + rng
act30 = raw_input('Enter request code:')
lichash = act30
hasher = sha.new()
hasher.update(act30)
hasher.update(rng)
lichash = AddHyphens(lichash[:3] + SHAToBase30(hasher.hexdigest().upper()))
part5 = format(loop(221, lichash), '05x') + format(loop(13, lichash), '05x') + format(loop(93, lichash), '05x') + format(loop(27, lichash), '05x')
part5 = BaseConvert(part5.upper(), BASE16, BASE30)
while len(part5) < 17:
part5 = '1' + part5
part5 = 'AXX' + part5
print 'Activation code: ' + AddHyphens(part5)
textcode = 'Activation code: ' + AddHyphens(part5)
text_file = open("Generated activation Code.txt", 'w') # open text file so we can write to it
convert = str(textcode) # change int to string
text_file.write("Text file added By MrDude\n\nDon't Delete or Rename\n\n" + convert) # write what type of service we are using for debug purposes
text_file.close() # close the text file - we don't need to keep this open