马上注册,结交更多易友,享用更多功能,让你轻松玩转觅风论坛。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
Python让自己的程序拥有自己的注册文件,防止在别人的机器使用源码分享给大家
- import wmi
- import hashlib
- import os
-
- AUTHOR='52pj'
- KEYFILENAME='./RegisterKey.key'
-
- #获取CPU的序列号加上Author字段,MD5一次,再在结果加上Author字段再MD5一次,形成最终的比较密码
- def GetLocalMachineEncrypedString():
- try:
- c = wmi.WMI()
- decryptString = c.win32_Processor()[0].ProcessorId.strip() + AUTHOR
- encrypedString = hashlib.md5(decryptString.encode('utf-8')).hexdigest()
- decryptString = encrypedString + AUTHOR
- encrypedString = hashlib.md5(decryptString.encode('utf-8')).hexdigest()
- except:
- encrypedString = hashlib.md5(AUTHOR.encode('utf-8')).hexdigest()
- return encrypedString
-
- #文件中储存的Key是CPU序列号加Author,一次MD5结果
- def GetKeyFromFile():
- try:
- f=open(KEYFILENAME,'r')
- lines=f.readlines()
- keyString=lines[0]
- return keyString
- except:
- return ''
-
- #把文件的key加上author,做最后一次MD5生成最终结果
- def CheckIsRegistered():
- decryptString=GetKeyFromFile()+AUTHOR
- encrypedString = hashlib.md5(decryptString.encode('utf-8')).hexdigest()
- if encrypedString==GetLocalMachineEncrypedString():
- return True
- else:
- return False
-
- #生成key文件
- def BuildRegisterKey():
- try:
- c = wmi.WMI()
- decryptString = c.win32_Processor()[0].ProcessorId.strip() + AUTHOR
- encrypedString = hashlib.md5(decryptString.encode('utf-8')).hexdigest()
- except:
- encrypedString=''
-
- try:
- f=os.open(KEYFILENAME,os.O_CREAT|os.O_WRONLY)
- os.write(f,encrypedString.encode('utf-8'))
- print('写入', KEYFILENAME, '成功')
- except:
- print('写入',KEYFILENAME,'失败')
-
- def BuildRegisterKey(decryptString):
- if decryptString:
- decryptString = decryptString + AUTHOR
- encrypedString = hashlib.md5(decryptString.encode('utf-8')).hexdigest()
- else:
- encrypedString=''
-
- try:
- f=os.open(KEYFILENAME,os.O_CREAT|os.O_WRONLY)
- os.write(f,encrypedString.encode('utf-8'))
- print('写入', KEYFILENAME, '成功')
- except:
- print('写入',KEYFILENAME,'失败')
-
- def ShowCPUSerialNumber():
- try:
- c = wmi.WMI()
- decryptString = c.win32_Processor()[0].ProcessorId.strip()
- except:
- decryptString=''
- return decryptString
复制代码
|
|