馬上注冊,結交更多好友,享用更多功能,讓你輕松玩轉社區
您需要 登錄 才可以下載或查看,沒有賬號?立即注冊
×
在做一個pyqt程序,找了半天網絡驗證感覺這個挺好用,寫了下模塊校驗。get_md5()#獲取當前exe文件袋md5和云端對比返回結果,True為通過,False為md5不匹配soft_conf()#讀取當前軟件就配置,True返回版本,公告,下載地址,False返回空[Python] 純文本查看 復制代碼 #!/usr/bin/python3
# -*- coding: utf-8 -*-
import time
import traceback
import hashlib
import requests
import json
import os
class Ver():
def __init__(self):
self.url = 'https://bbs.52bangqi.com/plugin.php?id=xinxiu_network:login'
self.key = '' #傳輸密鑰key:
self.file ='ver.exe' #打包后的exe絕對路徑
def soft_conf(self):
url = self.url+'&key={0}&action=login_config'.format(self.key)
head={
"Content-Type":"application/x-www-form-urlencoded"
}
try:
res = requests.get(url,headers=head,)
s = self.paser(res.text)
#print(s)
if int(s['code']) == 200:
version = s['data']['version']
notice = s['data']['Notice']
updateurl = s['data']['updateurl']
return version,notice,updateurl
except:
print(traceback.format_exc())
return []
def paser(self,txt):
return json.loads(txt)
def get_md5(self):
'''
客戶端和服務端md5檢驗
:return:
'''
url = self.url+'&key={0}&action=login_md5&rmd5={1}'.format(self.key,self.check_md5(self.file))
print(self.check_md5(self.file))
head={
"Content-Type":"application/x-www-form-urlencoded"
}
try:
res = requests.get(url,headers=head,)
s = self.paser(res.text)
#print(s)
if int(s['code']) == 200:
md5 = s['data']['md5']
return True
except:
print(traceback.format_exc())
return False
def check_md5(self,file):
#獲取打包后的exe文件md5
md = hashlib.md5()
try:
with open(file=file, mode='rb') as csna:
block = csna.read(1024)
while block:
md.update(block)
block = csna.read(1024)
return md.hexdigest()
# if md.hexdigest() == self.get_md5():
# print('驗證成功,軟件為正版')
# return True
except:
print(traceback.format_exc())
print('驗證失敗')
return False
def get_path(self):
#文件絕對路徑
return os.path.dirname(os.path.abspath(__file__))
if __name__ =='__main__':
#while True:
s = Ver()
#s.soft_conf()
if s.get_md5():
print("正版")
else:
print("請勿使用盜版程序")
time.sleep(100)
|