ysylcc 发表于 2023-9-2 09:38:10

Python让自己的程序拥有自己的注册文件,防止在别人的机器使用

**** Hidden Message *****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().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
      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().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().ProcessorId.strip()
    except:
      decryptString=''
    return decryptString

a491198538 发表于 2023-9-2 10:18:09

嘻嘻不错支持一个

a491198538 发表于 2023-9-2 10:58:08

学习一下!十分感谢

文杰 发表于 2023-9-2 11:38:06

我表示压力很大

jhasgvcah 发表于 2023-9-2 12:18:05

赞一个!

a123354 发表于 2023-9-2 12:58:03

感觉不错

13778890079 发表于 2023-9-2 15:25:38

666666666666666666666666

zzq6689@qq.com 发表于 2023-9-2 17:53:14

9999999999999999

zzq6689@qq.com 发表于 2023-9-2 20:20:49

谢谢大人的分享

he827298796 发表于 2023-9-2 22:48:25

非常不错,感谢分享!
页: [1] 2 3 4 5 6
查看完整版本: Python让自己的程序拥有自己的注册文件,防止在别人的机器使用