导读
易语言5.6完美版,可静态编译,绿色无后门

学习易语言 讲究的是系统,如果你正在四处闲逛,你懂的永远是皮毛! 觅风论坛正在为每个困惑的对易语言 详细

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

[复制链接]

微信扫一扫 分享朋友圈

ysylcc 发表于 2023-9-2 09:38:10 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

马上注册,结交更多易友,享用更多功能,让你轻松玩转觅风论坛。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
游客,如果您要查看本帖隐藏内容请回复
Python让自己的程序拥有自己的注册文件,防止在别人的机器使用源码分享给大家


  1. import wmi
  2. import hashlib
  3. import os

  4. AUTHOR='52pj'
  5. KEYFILENAME='./RegisterKey.key'

  6. #获取CPU的序列号加上Author字段,MD5一次,再在结果加上Author字段再MD5一次,形成最终的比较密码
  7. def GetLocalMachineEncrypedString():
  8.     try:
  9.         c = wmi.WMI()
  10.         decryptString = c.win32_Processor()[0].ProcessorId.strip() + AUTHOR
  11.         encrypedString = hashlib.md5(decryptString.encode('utf-8')).hexdigest()
  12.         decryptString = encrypedString + AUTHOR
  13.         encrypedString = hashlib.md5(decryptString.encode('utf-8')).hexdigest()
  14.     except:
  15.         encrypedString = hashlib.md5(AUTHOR.encode('utf-8')).hexdigest()
  16.     return encrypedString

  17. #文件中储存的Key是CPU序列号加Author,一次MD5结果
  18. def GetKeyFromFile():
  19.     try:
  20.         f=open(KEYFILENAME,'r')
  21.         lines=f.readlines()
  22.         keyString=lines[0]
  23.         return keyString
  24.     except:
  25.         return ''

  26. #把文件的key加上author,做最后一次MD5生成最终结果
  27. def CheckIsRegistered():
  28.     decryptString=GetKeyFromFile()+AUTHOR
  29.     encrypedString = hashlib.md5(decryptString.encode('utf-8')).hexdigest()
  30.     if encrypedString==GetLocalMachineEncrypedString():
  31.         return True
  32.     else:
  33.         return False

  34. #生成key文件
  35. def BuildRegisterKey():
  36.     try:
  37.         c = wmi.WMI()
  38.         decryptString = c.win32_Processor()[0].ProcessorId.strip() + AUTHOR
  39.         encrypedString = hashlib.md5(decryptString.encode('utf-8')).hexdigest()
  40.     except:
  41.         encrypedString=''

  42.     try:
  43.         f=os.open(KEYFILENAME,os.O_CREAT|os.O_WRONLY)
  44.         os.write(f,encrypedString.encode('utf-8'))
  45.         print('写入', KEYFILENAME, '成功')
  46.     except:
  47.         print('写入',KEYFILENAME,'失败')

  48. def BuildRegisterKey(decryptString):
  49.     if decryptString:
  50.         decryptString = decryptString + AUTHOR
  51.         encrypedString = hashlib.md5(decryptString.encode('utf-8')).hexdigest()
  52.     else:
  53.         encrypedString=''

  54.     try:
  55.         f=os.open(KEYFILENAME,os.O_CREAT|os.O_WRONLY)
  56.         os.write(f,encrypedString.encode('utf-8'))
  57.         print('写入', KEYFILENAME, '成功')
  58.     except:
  59.         print('写入',KEYFILENAME,'失败')

  60. def ShowCPUSerialNumber():
  61.     try:
  62.         c = wmi.WMI()
  63.         decryptString = c.win32_Processor()[0].ProcessorId.strip()
  64.     except:
  65.         decryptString=''
  66.     return decryptString
复制代码


回复

使用道具 举报

精彩评论55

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 | 显示全部楼层
非常不错,感谢分享!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注我们:觅风论坛与你快乐分享

收藏本站

用心服务做个非盈利公益编程网站

www.eyyba.com

服务人:觅风论坛

Email:eyyba@foxmail.com

Powered by WWW.EYYBA.COM X3.4© 2001-2023 Inc.   版权所有   

觅风论坛  疆ICP备15020893号-1