vue 登录注册,前端实现登录注册功能

  vue 登录注册,前端实现登录注册功能

  1.目的:完成现有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。win32 . getvolumeinformation http://timgolden.me.uk/pywin32-docs/win32 API _ _ getvolumeinformation _ meth . html 3,pyinstaller包文件描述http://pythonhosted.org/Py/spec-files . html # using-spec-files II。#编码的实现:utf8#register.py#功能描述:用户运行程序后,自动检测认证状态。如果没有通过认证,就需要注册。注册过程是用户将程序运行后显示的机器码(卷序列号)发回给管理员,管理员对其加密生成加密文件或字符串发回给用户。#每次登录,软件都会在有注册文件或代码的情况下被DES和base64解码。如果解码后的机器码与重新获取的机器码一致,则通过认证,进入主程序。import base64 import win32 API from py des import * # from binascii import a2b _ hex #如果需要用二进制代码保存注册码和注册文件,可以使用binascii转换class register: def __init__(self)。self . des _ key= bhc # @ * um # keyself . des _ IV= \ x22 \ x33 \ x35 \ x81 \ xbc \ x38 \ x5a \ xe7 #自定义IV vector #获取C卷序列号#使用C卷序列号的好处是长度短,方便。

  #win32api .获取卷信息(卷名,卷序列号,文件名的最大组成长度,系统标志,文件系统名)#return(,1513085707,255,65470719, NTFS ),卷序列号为1513085707。def getCVolumeSerialNumber(self):CVolumeSerialNumber=win 32 API .GetVolumeInformation( C:\ )[1]# print char det。detect(str(CVolumeSerialNumber))# print CVolumeSerialNumber if CVolumeSerialNumber:return str(CVolumeSerialNumber)# number是长整型,必须更改为潜艇用热中子反应堆(submarine thermal reactor的缩写)以便与之后的内容进行比较。否则:返回0 #使用数据加密标准加base64的形式加密#考虑过使用货币供应量之二加密和rsa,但是都因为在窗子环境中糟糕的安装配置过程而放弃def DesEncrypt(self,str): k=des(self .Des_Key,CBC,self .Des_IV,pad=None,PAD mode=PAD _ pkcs 5)EncryptStr=k . encrypt(str)# EncryptStr=binas CII。unhexlify(k . encrypt(str))返回基数64。b 64编码(加密字符串)#转base64编码返回#des解码def DesDecrypt(self,str): k=des(self .Des_Key,CBC,self .Des_IV,pad=None,PAD mode=PAD _ pkcs 5)DecryptStr=k . DecryptStr(str)# DecryptStr=a2b _ hex(k . decrypt(str))print DecryptStr return DecryptStr #获取注册码,验证成功后生成注册文件def regist(self): key=raw_input(请输入您的注册码:)#由于输入类似"12"这种不符合base64规则的字符串会引起异常,所以需要增加输入判断# while key if key:content=self。getcvolumeserialnumber()//number在使用str()# print chardet。检测(内容)#打印类型(内容)#打印内容#类型(密钥已解密)是str key_decrypted=str(self .des解密(base64。b 64 decode(key)))# print chardet。检测(密钥解密)#打印密钥解密#类型(密钥解密)是str if内容!=0且key _解密!=0:如果内容!=key_decrypted: print错误的注册码,请检查并再次输入您的注册码:自我。regist()elif content==key _ decrypted:print 注册成功。#读写文件要加判断带开(。/register , w )as f:f . write(key)f . close()返回True else:返回False else:返回False else:self。regist()返回False def检查授权(self):content=self。getcvolumeserialnumber()checkAuthoredResult=0 #读写文件要加判断try: f=open(./register , r )if f:key=f . read()if key:key _ decrypted=self .des解密(base64。b64 decode(key))if key _ decrypted:if key _ decrypted==content:checkAuthoredResult=1 else:checkAuthoredResult=-1 else:checkAuthoredResult=-3 else:self。regist()except io error:print io error print checkAuthoredResult return checkAuthoredResult if _ _ name _ _= _ _ main _ _ :reg=reg()reg。注册()

  三。备注1。之所以用c盘序列号代替硬盘号,是因为位数短,操作方便。但使用硬盘号更安全,因为重装系统、格式化c盘或修改c盘序列号都不会改变硬盘号。# cvolumeserialnode:1513085707 #加密后:ro 5 rvxzop 0 kmnogedeepug==#硬盘编号:32535332584 e 4741343536393237204620202020 #加密后:mzi 1 mzzzi 1 odrindc 0 MTM 0 mzznjm mzzziwndyymdiwmjayma==2。除了win32api,wmi还可以用来获取系统信息(比如硬盘号)。获取完整硬盘号的过程如下:#虽然可以用wmi获取磁盘序列号,但是,磁盘序列号是3253533258 * * * * * * * * * 32372046202020,加密后太长,不方便操作,所以放弃c.win32 _中physical _ disk的导入wmi def getharddisknumber(self):c=wmi . wmi()。

  3.https://pypi.python.org/pypi/WMI/可以用来检查字符串的编码类型,也可以用来检查字符串的相等性。chardet.detect(str) 4。还有一些逻辑上的漏洞,比如读写文件时判断文件是否存在,选择读取方式等。5.register.py可以被main函数或者其他需要获取认证状态的函数调用。在主函数中使用register类的过程是:创建登录函数获取认证结果——“如果认证结果为假,再次调用register类的register函数,提醒用户输入注册码。只有成功输入注册码,才能创建新的注册文件——“如果认证结果为真,直接启动主程序。6.管理员也要有一个encryption.py,用来加密用户用des base64算法发来的c盘卷序列号。加密后会生成一个字符串或者注册文件,然后返回给用户,这里不再赘述。

  请注明出处:

  http://www.cnblogs.com/cquptzzq/

  转载于:https://www.cnblogs.com/cquptzzq/p/5940583.html

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: