#coding=utf-8 import uuid import datetime import os import platform import base64 import hashlib XorKey = [0xB2, 0x09, 0xBB, 0x55, 0x93, 0x83, 0x03, 0x24] def enc(src): j, result = 0, "" for s in src: result = result + hex(ord(s) ^ (XorKey[j]))[2:] j = (j + 1) % 8 return result sysstr = platform.system() if (sysstr == "Windows"): import winreg key = winreg.OpenKey( winreg.HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Cryptography", 0, winreg.KEY_READ | winreg.KEY_WOW64_64KEY ) result = winreg.QueryValueEx(key, "MachineGuid") mac = result[0] else: mac = ':'.join(['{:02x}'.format((uuid.getnode() >> i) & 0xff) for i in range(0,8*6,8)][::-1]) path = '/auth/kaohe/v2/' mac += 'ZZLY[' + path + ']20190325' mac = enc(mac) mac = base64.b64encode(mac.encode()) mac = hashlib.sha256(mac).hexdigest() with open('key', mode='wb') as f: f.write(mac.encode('utf-8'))