当前位置: 首页 > news >正文

wamp网站建设互联网公司排名保定

wamp网站建设,互联网公司排名保定,多语网站,快速优化seo软件sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId1005269003utm_campaigncommissionutm_sourcecp-400000000398149utm_mediumshare 一、前言#xff1a;目的#xff1a;完成已有python图像处理工具的注册功能功能1005269003utm_campaigncommissionutm_sourcecp-400000000398149utm_mediumshare     一、前言 目的完成已有python图像处理工具的注册功能 功能用户运行程序后通过文件自动检测认证状态如果未经认证就需要注册。注册过程是用户将程序运行后显示的机器码C盘的卷序号发回给管理员管理员对机器码加密后生成加密文件或字符串返回给用户。每次启动程序在有注册文件的情况下程序就会通过DES和base64解码并与此刻获取到的C盘卷序列号比对如果一致则运行主程序。如果注册文件解码后与卷序号不一致就要提醒用户输入注册码如果对新输入的解码后和重新获取的机器码一致则通过认证生成新的注册文件后进入主程序。 库和组件 1、pyDes用于加密解密 2、base64用于pyDes加密解密后的二次加密解密 3、win32api用于获取C盘卷序列号 4、pyinstaller打包 参考 1、pyDes库 实现python的des加密 http://www.mamicode.com/info-detail-508384.html http://twhiteman.netfirms.com/des.html 2、win32api.GetVolumeInformation http://timgolden.me.uk/pywin32-docs/win32api__GetVolumeInformation_meth.html 3、pyinstaller打包文件说明 http://pythonhosted.org/PyInstaller/spec-files.html#using-spec-files 二、实现 #coding:utf8 #register.py #功能说明用户运行程序后自动检测认证状态如果未经认证就需要注册。注册过程是用户将程序运行后显示的机器码卷序号发回给管理员管理员通过加密后生成加密文件或字符串给回用户。 #每次登录在有注册文件或者注册码的情况下软件就会通过DES和base64解码如果解码后和重新获取的机器码一致则通过认证进入主程序。 import base64 import win32api from pyDes import * #from binascii import a2b_hex #如果需要用二进制编码保存注册码和注册文件可以使用binascii转换 class register: def __init__(self): self.Des_Key BHC#*UM # Key self.Des_IV \x22\x33\x35\x81\xBC\x38\x5A\xE7 # 自定IV向量 #获取C盘卷序列号 #使用C盘卷序列号的优点是长度短方便操作比如1513085707但是对C盘进行格式化或重装电脑等操作会影响C盘卷序列号。 #win32api.GetVolumeInformation(Volume Name, Volume Serial Number, Maximum Component Length of a file name, Sys Flags, File System Name) #return(, 1513085707, 255, 65470719, NTFS),volume serial number is 1513085707. def getCVolumeSerialNumber(self): CVolumeSerialNumberwin32api.GetVolumeInformation(C:\\)[1] #print chardet.detect(str(CVolumeSerialNumber)) #print CVolumeSerialNumber if CVolumeSerialNumber: return str(CVolumeSerialNumber) #number is long typehas to be changed to str for comparing to content after. else: return 0 #使用DES加base64的形式加密 #考虑过使用M2Crypto和rsa但是都因为在windows环境中糟糕的安装配置过程而放弃 def DesEncrypt(self,str): k des(self.Des_Key, CBC, self.Des_IV, padNone, padmodePAD_PKCS5) EncryptStr k.encrypt(str) #EncryptStr binascii.unhexlify(k.encrypt(str)) return base64.b64encode(EncryptStr) #转base64编码返回 #des解码 def DesDecrypt(self,str): k des(self.Des_Key, CBC, self.Des_IV, padNone, padmodePAD_PKCS5) DecryptStr k.decrypt(str) #DecryptStr a2b_hex(k.decrypt(str)) print DecryptStr return DecryptStr #获取注册码验证成功后生成注册文件 def regist(self): key raw_input(please input your register code: ) #由于输入类似“12”这种不符合base64规则的字符串会引起异常所以需要增加输入判断 #while key if key: content self.getCVolumeSerialNumber() //number has been changed to str type after use str() #print chardet.detect(content) #print type(content) #print content #type(key_decrypted) is str key_decryptedstr(self.DesDecrypt(base64.b64decode(key))) #print chardet.detect(key_decrypted) #print key_decrypted #type(key_decrypted) is str if content!0 and key_decrypted!0: if content ! key_decrypted: print wrong register code, please check and input your register code again: self.regist() elif contentkey_decrypted: print register succeed. #读写文件要加判断 with open(./register,w) as f: f.write(key) f.close() return True else: return False else: return False else: self.regist() return False def checkAuthored(self): contentself.getCVolumeSerialNumber() checkAuthoredResult 0 #读写文件要加判断 try: fopen(./register,r) if f: keyf.read() if key: key_decryptedself.DesDecrypt(base64.b64decode(key)) if key_decrypted: if key_decrypted content: checkAuthoredResult 1 else: checkAuthoredResult -1 else: checkAuthoredResult -2 else: checkAuthoredResult -3 else: self.regist() except IOError: print IOError print checkAuthoredResult return checkAuthoredResult if __name__ __main__: regregister() reg.regist()   三、备注 1、使用C盘卷序列号而不是硬盘号的原因是位数短方便操作。 但是使用硬盘号才是更安全的做法因为硬盘号不会因重装系统、格式化C盘或修改C盘序号而改变。 #CVolumeSerialNumber: 1513085707 #after encryption: ro5RVXZoP0KmnogYDeepUg #the HardDiskNumber: 32535332584e4741343536393237204620202020 #after encryption: MzI1MzUzMzI1ODRlNDc0MTM0MzUzNjM5MzIzNzIwNDYyMDIwMjAyMA 2、除了win32apiwmi也可以用来获取系统信息比如硬盘号获取完整硬盘号的过程如下 #虽然使用wmi可以获取磁盘序列号可是磁盘序列号是3253533258**************3237204620202020加密后太长不方便操作所以弃置 import wmi def getHardDiskNumber(self):c wmi.WMI()for physical_disk in c.Win32_DiskDrive(): return physical_disk.SerialNumber   https://pypi.python.org/pypi/WMI/ 3、chardet可以用来检验字符串的编码类型可以用在检测字符串相等上 chardet.detect(str) 4、还存在一些逻辑上的漏洞比如读写文件时对文件是否存在的判断读取方式的选择等 5、register.py供main函数或其他需要获取认证状态的函数调用。 main函数中使用register类的过程是 创建logIn函数用于获取认证结果-》如果认证结果为假则重新调用register类的regist函数提醒用户输入注册码只有成功输入了注册码才能创建新的注册文件-》如果认证结果为真则直接启动主程序。 6、管理员还应该有一个encryption.py用于使用desbase64算法对用户发过来的C盘卷序列号进行加密加密以后生成字符串或注册文件再返还给用户不再赘述。   转载请注明出处 http://www.cnblogs.com/cquptzzq/ python风控评分卡建模和风控常识 https://study.163.com/course/introduction.htm?courseId1005214003utm_campaigncommissionutm_sourcecp-400000000398149utm_mediumshare 转载于:https://www.cnblogs.com/webRobot/p/6351454.html
http://www.pierceye.com/news/839796/

相关文章:

  • 做网站的公司有多少家无后台基础怎么建设网站
  • 在公司做网站是什么职位有链接的网站怎么做
  • 手机网站开发前台架构专业群建设网站
  • 做网站设计怎么样网站ui怎么做的
  • 企业网站用织梦好吗ui培训的课程都有哪些
  • 临沂专业网站建设公司哪家好做网站的照片要多大像素
  • 山东滕州做网站技术电话wordpress网页登陆
  • 做公司网站的费用flash交互网站页面切换制作
  • 网络推广渠道有哪些百度手机seo
  • 重庆专业网站建设公司哪家好seo的中文意思是什么
  • 做品牌折扣微信推广的网站网站换主机换域名
  • 营销型网站有哪些建设流程怎样制作免费的网站
  • 天津建设工程计价网站手工加工网
  • 温州做美食网站网站建设的方案模板下载
  • 如何快速网站备案以用户为中心 建设学校网站
  • 宣传型网站有哪些宁波建设信息港网站
  • php网站开发是做什么的phpcms v9企业网站模板(简洁利于优化)
  • 什么是网站和网页wordpress启用插件出错
  • asp网站制作工具怎么样做国际网站生意
  • 签订网站建设合同山东建设工程招标网官方网站
  • 迅速建设企业网站外贸网站服务器选择
  • 建设网站详细流程wordpress建站数据库
  • 贵阳建立网站聊城网站建设设计
  • 网站怎么设置关键词百度网址大全首页设为首页
  • 中企动力网站怎么样怎么做公司内网网站
  • 求职网站网页模板一个网站可以做多少个小程序
  • 深圳市住房和建设局网站登录怎样在百度建网站
  • 外国做视频在线观看网站asp简单网站开发
  • 介绍移动互联网的网站有哪些做网站时怎么选择数据库类型
  • 工厂的网站在哪里做的免费建站的软件