def __init__(self,acc,pwd,mac,server,key): self._acc=acc self._pwd=pwd self._mac=mac self._server=server self._key=key self._aes=pyAes.new(key,1) self._des=pyDes.triple_des('1234ZHEJIANGXINLIWANGLEI',pyDes.CBC,'12345678')
def encrypt_password(cls, password): aes_key = md5(cls.INIT_KEY).digest() aes = AES.new(aes_key, AES.MODE_ECB) # padding l = 16 - len(password) % 16 ram_data = password + l * chr(l) ram_data = ram_data.encode('utf-8') return aes.encrypt(ram_data).encode('hex').upper()
def __init__(self,acc,pwd,mac=None,pre='/tmp/'): self._server='pppoeh.114school.cn' self._acc=acc self._pwd=pwd self._prefix=pre self._aes=pyAes.new('xlzjhrprotocol3x',1) self._des=pyDes.triple_des('1234ZHEJIANGXINLIWANGLEI',pyDes.CBC,'12345678') if mac: self._mac=mac else: self._mac='08:00:27:00:24:FD'
def __init__(self, acc, pwd, mac=None, pre='/tmp/'): self._server = 'pppoeh.114school.cn' self._acc = acc self._pwd = pwd self._prefix = pre self._aes = pyAes.new('xlzjhrprotocol3x', 1) self._des = pyDes.triple_des('1234ZHEJIANGXINLIWANGLEI', pyDes.CBC, '12345678') if mac: self._mac = mac else: self._mac = '08:00:27:00:24:FD'
#!/usr/bin/env python2 #encoding=utf-8 #该脚本请配合定时任务使用 建议的定时任务配置 见sx.conf #该版本为纯python不依赖二进制编译库 #代码的讲解注释见之前的版本 import pyDes,pyAes,binascii import time,hashlib,struct,sys,socket,urllib2,json,re import os.path des=pyDes.triple_des('1234ZHEJIANGXINLIWANGLEI',pyDes.CBC,'12345678') aes=pyAes.new('xlzjhrprotocol3x',1) server='pppoeh.114school.cn' g_u='' g_p='' g_pathprefix='/tmp/' #新增,在win环境下情自行修改 g_router_acc='admin' g_router_pw='admin' g_router_url='''http://192.168.1.1/userRpm/PPPoECfgRpm.htm? wantype=2&VnetPap=201&linktype=1&waittime=&Connect=%%C1%%AC+%%BD%%D3 &acc=%s&psw=%s'''.replace('\n','') def getPIN(): global g_u us=g_u RAD="zjxinlisx01" timeHash=[0,0,0,0] timedivbyfive=int(time.time())//5 for i in range(0,4): for j in range(0,8): timeHash[i]=timeHash[i]+(((timedivbyfive>>(i+4*j))&1)<<(7-j)) m=hashlib.md5() bm=struct.pack('>I',timedivbyfive)+(us.split('@')[0]+RAD).encode('ascii') m.update(bm)