├── 5173 ├── __init__.py └── 5173_passwprd.py ├── aipai ├── __init__.py ├── aipai_password.py └── aipai_password.js ├── fang ├── __init__.py ├── 房天下.py └── fang.js ├── gsxt ├── __init__.py ├── 反混淆.py ├── cookies.py └── 第二次请求.js ├── hlct ├── __init__.py └── hlct_encryption.js ├── lagou ├── __init__.py └── lagou_password.py ├── rjs ├── __init__.py ├── rjs_sign.py └── rjs_sign.js ├── taobao ├── __init__.py └── h5_sign.py ├── zgc ├── __init__.py ├── zgc_pwd.py └── 请求头加引号.py ├── jycinema ├── __init__.py ├── jy_params.py └── jy_params.js ├── yuanrenxue ├── 1 │ ├── __init__.py │ ├── 1.py │ └── 1.js ├── 2 │ ├── 2.py │ └── 2.js ├── 3 │ ├── __init__.py │ ├── 请求头加引号.py │ └── 3.py └── 4 │ ├── __init__.py │ ├── test.jpg │ └── 4.py └── .gitignore /5173/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /aipai/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /fang/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /gsxt/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hlct/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lagou/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /rjs/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /taobao/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /zgc/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /jycinema/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /yuanrenxue/1/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /yuanrenxue/3/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /yuanrenxue/4/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /yuanrenxue/4/test.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OneJane/JsCrack/HEAD/yuanrenxue/4/test.jpg -------------------------------------------------------------------------------- /gsxt/反混淆.py: -------------------------------------------------------------------------------- 1 | import execjs 2 | 3 | with open(r'第二次请求.js', encoding='utf-8', mode='r') as f: 4 | JsData = f.read() 5 | cookie = execjs.compile(JsData).call('request') 6 | print(cookie) -------------------------------------------------------------------------------- /yuanrenxue/3/请求头加引号.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | old_headers =''' 4 | userid: 15806204095 5 | pwd: 74ce2ba17b2c218246e778fb5e895c95 6 | isAuto: 1 7 | backurl: http://www.zol.com.cn/ 8 | tmallBtn: 0 9 | activeBtn: 0 10 | headPicid: 0 11 | 12 | ''' 13 | 14 | pattern = '^(.*?):[\s]*(.*?)$' 15 | headers = "" 16 | for line in old_headers.splitlines(): 17 | headers += (re.sub(pattern,'\'\\1\': \'\\2\',',line)) + '\n' 18 | print(headers[:-2]) 19 | 20 | -------------------------------------------------------------------------------- /rjs/rjs_sign.py: -------------------------------------------------------------------------------- 1 | import json 2 | 3 | import requests 4 | import execjs 5 | 6 | username = "15806204095" 7 | psssword = "123" 8 | with open(r'rjs_sign.js', encoding='utf-8', mode='r') as f: 9 | JsData = f.read() 10 | sign = execjs.compile(JsData).call('request',username,psssword) 11 | data = json.dumps({"platform":"wap","session_token":"","session_id":"","data":{"userName":username,"password":psssword},"sign":sign,"timestamp":1618153079455}) 12 | r =requests.post("https://m.rjs.com/japi/account/login.json",data) 13 | print(r.text) -------------------------------------------------------------------------------- /zgc/zgc_pwd.py: -------------------------------------------------------------------------------- 1 | import requests 2 | from hashlib import md5 3 | 4 | username = '15806204095' 5 | pwd = '123' 6 | md5_pwd = md5((pwd + 'zol').encode('utf8')).hexdigest() 7 | print(md5_pwd) 8 | url = 'https://service.zol.com.cn/user/ajax/siteLogin/login.php' 9 | data = { 10 | 'userid': username, 11 | 'pwd': md5_pwd, 12 | 'isAuto': '1', 13 | 'backurl': 'http://www.zol.com.cn/', 14 | 'tmallBtn': '0', 15 | 'activeBtn': '0', 16 | 'headPicid': '0', 17 | } 18 | r =requests.post(url,data) 19 | print(r.text) 20 | -------------------------------------------------------------------------------- /lagou/lagou_password.py: -------------------------------------------------------------------------------- 1 | import requests 2 | from hashlib import md5 3 | 4 | username = '15806204095' 5 | pwd = '123' 6 | md5_pwd = md5(("veenike" + md5(pwd.encode('utf8')).hexdigest() + "veenike").encode("utf8")).hexdigest() 7 | print(md5_pwd) 8 | url = 'https://passport.lagou.com/login/login.json?jsoncallback=jQuery111306946515748870927_1618229101639&isValidate=true&username='+username+'&password=+'+md5_pwd+'+&request_form_verifyCode=&challenge=c3bebcad0648898aa58cb3f4dbf2f820&_=1618229101642' 9 | r =requests.get(url) 10 | print(r.text) 11 | -------------------------------------------------------------------------------- /aipai/aipai_password.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import execjs 3 | 4 | username = "15806204095" 5 | password = "123" 6 | with open(r'aipai_password.js', encoding='utf-8', mode='r') as f: 7 | JsData = f.read() 8 | password = execjs.compile(JsData).call('pwd', password) 9 | print(password) 10 | data = { 11 | 'action': 'loginNew', 12 | 'user': username, 13 | 'password': password, 14 | 'keeplogin': '1', 15 | 'comouterTime': '1', 16 | 'userNowTime': '1618281089', 17 | 18 | } 19 | r = requests.post("http://www.aipai.com/login.php", data) 20 | print(r.text) 21 | -------------------------------------------------------------------------------- /yuanrenxue/2/2.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import execjs 3 | import time 4 | 5 | def get_page(page_num,param): 6 | url = "http://match.yuanrenxue.com/api/match/2?page={}".format(page_num) 7 | headers = { 8 | 'Host': 'match.yuanrenxue.com', 9 | 'Referer':'http://match.yuanrenxue.com/match/2', 10 | 'User-Agent':'yuanrenxue.project', 11 | 'X-Requested-With':'XMLHttpRequest', 12 | 'Cookie': param 13 | } 14 | resonse = requests.get(url=url,headers=headers) 15 | return resonse.json() 16 | def calculate_m_value(): 17 | with open(r'2.js',encoding='utf-8',mode='r') as f: 18 | JsData = f.read() 19 | psd = execjs.compile(JsData).call('request') 20 | psd = psd.replace('丨','%E4%B8%A8') 21 | print('this request parameters is :',psd) 22 | return psd 23 | 24 | if __name__ == '__main__': 25 | sum_num = 0 26 | for page_num in range(1,6): 27 | res = get_page(page_num,calculate_m_value()) 28 | data = [__['value'] for __ in res['data']] 29 | print(data) 30 | sum_num+=sum(data) 31 | time.sleep(1) 32 | 33 | print('the answer is :',sum_num) -------------------------------------------------------------------------------- /zgc/请求头加引号.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | old_headers =''' 4 | content-type: application/json 5 | cookie: ptui_loginuin=1014733295; RK=va4NP05bfz; ptcz=18f7f01cc903421602b4db393f3cfbeb2fc08fde11e33373820b1d1fd9c55e15; pgv_pvid=4895108636; ts_uid=702913858; ts_refer=e.qq.com/dev/index.html; adnet_uin=808020614059; adnet_uname=%E8%8B%8F%E5%B7%9E%E6%91%A9%E5%A4%9A%E5%A4%9A%E4%BF%A1%E6%81%AF%E7%A7%91%E6%8A%80%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8; adnet_openId=E7BB4780ACE6D9DE240C87F02ABFC82B; adnet_li=$1$fdsffdfd$dEgR7tbsbpNMmv0nhJfiJ1; adnet_sso_flag=1; adnet_sso=TGT-27188-b4LXe0Y_bngUXYeYNmuTyxKzx.yeis2dLp7wc6hvV_eAoPaaPgF.SFgQGTwUmL3r; adnet_atype=Member; pgv_info=ssid=s7697369030; ts_last=adnet.qq.com/index 6 | origin: https://adnet.qq.com 7 | pragma: no-cache 8 | referer: https://adnet.qq.com/report/list 9 | sec-fetch-mode: cors 10 | sec-fetch-site: same-origin 11 | sign: 20ec031148f1070b56ffffb720ad2c40 12 | time: 1619677454486 13 | user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36 14 | x-requested-with: XMLHttpRequest 15 | ''' 16 | 17 | pattern = '^(.*?):[\s]*(.*?)$' 18 | headers = "" 19 | for line in old_headers.splitlines(): 20 | headers += (re.sub(pattern,'\'\\1\': \'\\2\',',line)) + '\n' 21 | print(headers[:-2]) 22 | 23 | -------------------------------------------------------------------------------- /fang/房天下.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import execjs 3 | 4 | account = "***" 5 | password = "***" 6 | 7 | 8 | def get_pwd(): 9 | with open("fang.js", "r") as f: 10 | js_code = f.read() 11 | results = execjs.compile(js_code).call("getpwd", password) 12 | return results 13 | 14 | 15 | def login(): 16 | url = 'https://passport.fang.com/login.api' 17 | pwd = get_pwd() 18 | data = { 19 | 'uid': account, 20 | 'pwd': pwd, 21 | 'Service': 'soufun-passport-web', 22 | 'AutoLogin': '1', 23 | } 24 | headers = { 25 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36', 26 | 'X-Requested-With': 'XMLHttpRequest', 27 | 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 28 | 'Host': 'passport.fang.com', 29 | 'Origin': 'https://passport.fang.com', 30 | 'Pragma': 'no-cache', 31 | 'Referer': 'https://passport.fang.com/?backurl=https%3A%2F%2Fsuzhou.fang.com%2F', 32 | 'Sec-Fetch-Dest': 'empty', 33 | 'Sec-Fetch-Mode': 'cors', 34 | 'Sec-Fetch-Site': 'same-origin', 35 | } 36 | response = requests.post(url, data, headers=headers) 37 | print(response.text) 38 | 39 | 40 | if __name__ == '__main__': 41 | login() 42 | -------------------------------------------------------------------------------- /yuanrenxue/1/1.py: -------------------------------------------------------------------------------- 1 | import time 2 | import execjs 3 | import requests 4 | def get_page(page_num,parameters): 5 | url = 'http://match.yuanrenxue.com/api/match/1?page={}&m={}'.format(page_num,parameters) 6 | headers = { 7 | 'Host': 'match.yuanrenxue.com', 8 | 'Referer': 'http://match.yuanrenxue.com/match/1', 9 | 'User-Agent': 'yuanrenxue.project', 10 | 'X-Requested-With': 'XMLHttpRequest', 11 | 'Cookie': 'qpfccr=true; Hm_lvt_c99546cf032aaa5a679230de9a95c7db=1607556997,1607557857; Hm_lpvt_c99546cf032aaa5a679230de9a95c7db=1607557857; no-alert=true' 12 | } 13 | response = requests.get(url=url,headers=headers) 14 | return response.json() 15 | 16 | def calculate_m_value(): 17 | with open(r'1.js',encoding='utf-8',mode='r') as f: 18 | JsData = f.read() 19 | psd = execjs.compile(JsData).call('request') 20 | psd = psd.replace('丨','%E4%B8%A8') 21 | print('this request parameters is :',psd) 22 | return psd 23 | 24 | if __name__ == '__main__': 25 | sum_num = 0 26 | index_num = 0 27 | for page_num in range(1,6): 28 | res = get_page(page_num,calculate_m_value()) 29 | data = [__['value'] for __ in res['data']] 30 | print(data) 31 | sum_num+=sum(data) 32 | index_num += len(data) 33 | time.sleep(1) 34 | 35 | average = sum_num/index_num 36 | print('the answer is :',average) -------------------------------------------------------------------------------- /yuanrenxue/3/3.py: -------------------------------------------------------------------------------- 1 | import requests 2 | 3 | session = requests.session() 4 | headers = { 5 | 'Connection': 'keep-alive', 6 | 'Accept': 'application/json, text/javascript, */*; q=0.01', 7 | 'X-Requested-With': 'XMLHttpRequest', 8 | 'User-Agent': 'yuanrenxue.project', 9 | 'Referer': 'http://match.yuanrenxue.com/match/3', 10 | 'Accept-Encoding': 'gzip, deflate', 11 | 'Accept-Language': 'zh-CN,zh;q=0.9' 12 | } 13 | session.headers = headers 14 | url_logo = 'http://match.yuanrenxue.com/logo' 15 | res = session.post(url_logo) 16 | print(res, res.cookies) 17 | url = 'http://match.yuanrenxue.com/api/match/3?page=1' 18 | res = session.get(url=url) 19 | data = res.json()["data"] 20 | vl = [v['value'] for v in data] 21 | 22 | res = session.post(url_logo) 23 | url = 'http://match.yuanrenxue.com/api/match/3?page=2' 24 | data = session.get(url=url).json()["data"] 25 | vl.append([v['value'] for v in data]) 26 | 27 | session.post(url_logo) 28 | url = 'http://match.yuanrenxue.com/api/match/3?page=3' 29 | data = session.get(url=url).json()["data"] 30 | vl.append([v['value'] for v in data]) 31 | 32 | session.post(url_logo) 33 | url = 'http://match.yuanrenxue.com/api/match/3?page=4' 34 | data = session.get(url=url).json()["data"] 35 | vl.append([v['value'] for v in data]) 36 | 37 | session.post(url_logo) 38 | url = 'http://match.yuanrenxue.com/api/match/3?page=5' 39 | data = session.get(url=url).json()["data"] 40 | vl.append([v['value'] for v in data]) 41 | 42 | print(max(vl,key=vl.count)) -------------------------------------------------------------------------------- /jycinema/jy_params.py: -------------------------------------------------------------------------------- 1 | import json 2 | import requests 3 | import execjs 4 | import base64 5 | 6 | from requests_toolbelt import MultipartEncoder 7 | 8 | username = "15806204095" 9 | psssword = "123456" 10 | with open(r'jy_params.js', encoding='utf-8', mode='r') as f: 11 | JsData = f.read() 12 | param = {"mobileNumber": "15806204095", "sendType": "reg", "channelId": 7, "channelCode": "J0005", "memberId": ""} 13 | val = base64.b64encode(json.dumps(param).encode()) 14 | params = execjs.compile(JsData).call('getEncryption', val.decode()) 15 | print(params) 16 | headers = { 17 | 'Accept': 'application/json, text/plain, */*', 18 | 'Accept-Encoding': 'gzip, deflate', 19 | 'Accept-Language': 'zh-CN,zh;q=0.9', 20 | 'Content-Length': '341', 21 | 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', 22 | 'Cookie': 'JSESSIONID=DD188088D4E4EAC0098C9CCBCC32E52F; Hm_lvt_62d04228e1f84e012c1d9c0227f722c3=1618618136; Hm_lpvt_62d04228e1f84e012c1d9c0227f722c3=1618618136', 23 | 'Host': 'www.jycinema.com', 24 | 'Origin': 'http://www.jycinema.com', 25 | 'Proxy-Connection': 'keep-alive', 26 | 'Referer': 'http://www.jycinema.com/wap/', 27 | 'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Mobile Safari/537.36', 28 | } 29 | data = {'params': params} 30 | r = requests.post("http://www.jycinema.com/frontUIWebapp/appserver/photoMessageService/newsSendMessage", data, 31 | headers=headers) 32 | print(r.text) 33 | -------------------------------------------------------------------------------- /taobao/h5_sign.py: -------------------------------------------------------------------------------- 1 | import hashlib 2 | import json 3 | import re 4 | import time 5 | from jsonpath import jsonpath 6 | import requests 7 | 8 | APPKEY = '12574478' 9 | DATA = '{"videoId": "%s","from":"detail"}' % "301079547561" 10 | URL = 'https://h5api.m.taobao.com/h5/mtop.taobao.cloudvideo.video.queryforh5/1.0/' 11 | params = {'jsv': '2.4.11', 'appKey': APPKEY, 't': int(time.time() * 1000), 12 | 'sign': 'FAKE_SIGN_WITH_ANYTHING', 'api': 'mtop.wdetail.getItemDescx', 'callback': 'mtopjsonp1','v': '4.9', 13 | 'type': 'jsonp', 'dataType': 'jsonp', 14 | 'data': DATA} 15 | headers = { 16 | 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_4 like Mac OS X) AppleWebKit/601.1.46 ' + \ 17 | '(KHTML, like Gecko) Version/9.0 Mobile/13G35 Safari/601.1', 18 | } 19 | images = [] 20 | # get token in first request 21 | r1 = requests.get(URL, params=params, headers=headers) 22 | token_with_time = r1.cookies.get('_m_h5_tk') 23 | token = token_with_time.split('_')[0] 24 | enc_token = r1.cookies.get('_m_h5_tk_enc') 25 | # get results in second request 26 | t2 = str(int(time.time() * 1000)) 27 | c = '&'.join([token, t2, APPKEY, DATA]) 28 | m = hashlib.md5() 29 | m.update(c.encode('utf-8')) 30 | params.update({'t': t2, 'sign': m.hexdigest()}) 31 | cookies = {'_m_h5_tk': token_with_time, '_m_h5_tk_enc': enc_token} 32 | r2 = requests.get(URL, params=params, headers=headers, cookies=cookies) 33 | results=json.loads(re.match(r' mtopjsonp1\((.*?)\)', r2.text).group(1)) 34 | video_url = jsonpath(results, '$..video_url')[1] 35 | print(video_url) 36 | -------------------------------------------------------------------------------- /5173/5173_passwprd.py: -------------------------------------------------------------------------------- 1 | import hashlib 2 | import re 3 | 4 | import requests 5 | 6 | 7 | def hex_md5(s): 8 | m = hashlib.md5() 9 | m.update(str(s).encode("utf-8")) 10 | return m.hexdigest() 11 | 12 | headers = { 13 | 'Host': 'passport.5173.com', 14 | 'Origin': 'https://passport.5173.com', 15 | 'Pragma': 'no-cache', 16 | 'Referer': 'https://passport.5173.com/?returnUrl=http%3A//www.5173.com/', 17 | 'Sec-Fetch-Mode': 'cors', 18 | 'Sec-Fetch-Site': 'same-origin', 19 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36', 20 | 'X-Requested-With': 'XMLHttpRequest', 21 | } 22 | login_url = 'https://passport.5173.com/?returnUrl=http%3A//www.5173.com/' 23 | html = requests.get(login_url).text 24 | # print(html) 25 | securityToken = re.findall('SecurityToken:"(.*?)",', html, re.M | re.S)[0] 26 | passwordKey = re.findall('PasswordKey:"(.*?)",', html, re.M | re.S)[0] 27 | print(passwordKey) 28 | print(securityToken) 29 | 30 | 31 | # 滑块 'https://passport.5173.com/Sso/ValidateSlide?token={}'.format(securityToken) 32 | # hex_md5(hex_md5("123456").substr(8, 16) + "42m2gl") 33 | password = hex_md5(hex_md5("123456")[8:8 + 16] + passwordKey) 34 | userName = '15806204096' 35 | 36 | data = { 37 | 'smsLogin': '0', 38 | 'userName': userName, 39 | 'password': password, 40 | 'mobileNo': '', 41 | 'smsCaptcha': '', 42 | 'category': '', 43 | 'passpod': '', 44 | '__validationToken__': securityToken, 45 | '__validationDna__': '' 46 | } 47 | r = requests.post(login_url, data, headers=headers) 48 | print(r.text) 49 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | *.egg-info/ 24 | .installed.cfg 25 | *.egg 26 | MANIFEST 27 | 28 | # PyInstaller 29 | # Usually these files are written by a python script from a template 30 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 31 | *.manifest 32 | *.spec 33 | 34 | # Installer logs 35 | pip-log.txt 36 | pip-delete-this-directory.txt 37 | 38 | # Unit test / coverage reports 39 | htmlcov/ 40 | .tox/ 41 | .coverage 42 | .coverage.* 43 | .cache 44 | nosetests.xml 45 | coverage.xml 46 | *.cover 47 | .hypothesis/ 48 | .pytest_cache/ 49 | 50 | # Translations 51 | *.mo 52 | *.pot 53 | 54 | # Django stuff: 55 | *.log 56 | local_settings.py 57 | db.sqlite3 58 | 59 | # Flask stuff: 60 | instance/ 61 | .webassets-cache 62 | 63 | # Scrapy stuff: 64 | .scrapy 65 | 66 | # Sphinx documentation 67 | docs/_build/ 68 | 69 | # PyBuilder 70 | target/ 71 | 72 | # Jupyter Notebook 73 | .ipynb_checkpoints 74 | 75 | # pyenv 76 | .python-version 77 | .idea/ 78 | # celery beat schedule file 79 | celerybeat-schedule 80 | workspace.xml 81 | # SageMath parsed files 82 | *.sage.py 83 | .idea/workspace.xml 84 | # Environments 85 | .env 86 | .venv 87 | env/ 88 | venv/ 89 | ENV/ 90 | env.bak/ 91 | venv.bak/ 92 | 93 | # Spyder project settings 94 | .spyderproject 95 | .spyproject 96 | 97 | # Rope project settings 98 | .ropeproject 99 | 100 | # mkdocs documentation 101 | /site 102 | 103 | # mypy 104 | .mypy_cache/ -------------------------------------------------------------------------------- /gsxt/cookies.py: -------------------------------------------------------------------------------- 1 | import execjs 2 | import requests 3 | import regex as re 4 | import js2py 5 | 6 | index_url = 'http://www.gsxt.gov.cn/corp-query-entprise-info-xxgg-100000.html' 7 | headers = { 8 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36', 9 | } 10 | # 获取request的session对象, 可以自动合并cookie信息 11 | session = requests.session() 12 | session.headers = headers 13 | 14 | # ######################################################使用session发送index_url请求########################### 15 | response = session.get(index_url) 16 | print(response.status_code) 17 | # 第一次请求521 服务器借助这个请求设置一个Set-Cookie: __jsluid_h=8af7a39f7cdb1c46f8f624c972968c8f; max-age=31536000; path=/; HttpOnly到本地,并返回一段js 18 | print(session.cookies) 19 | ########################################################拿到第一个cookie######################## 20 | # 1. 提取script标签中的js 21 | js1 = re.findall('', response.content.decode())[0].replace('document.cookie=', '').replace( 22 | 'location.href=location.pathname+location.search', '') 23 | print(js1) 24 | context = js2py.EvalJs() 25 | ###################################################根据第一个请求返回的js生成第二个cookie############################### 26 | context.execute('cookies2 =' + js1) 27 | cookies = context.cookies2.split(';')[0].split('=') 28 | session.cookies.set(cookies[0], cookies[1]) # 到此拿到第两个cookie 29 | print(session.cookies) 30 | ######################################################拿到第二个cookie############################ 31 | 32 | 33 | # 第二次请求携带Cookie: __jsluid_h=6ed2648e0a734bc66e3011d648f6f1ab; __jsl_clearance=1619152879.013|-1|aS3lFknWlGtD%2FADiygf7vxl4yqk%3D返回一段js 34 | # 添加jsdom实现浏览器上下文 35 | js2 = '''const jsdom = require("jsdom");const {JSDOM} = jsdom;const dom = new JSDOM();window = dom.window;document = window.document;location = new Array();''' + \ 36 | re.findall('', session.get(index_url).content.decode('utf-8'))[0] 37 | # 正则获取document['cookie'],由于每次个数不一样我们取最后一个 38 | cookies2_1 = re.findall(r"document\[.*?\]=(.*?)location", js2, re.S)[-1] 39 | # 将document['cookie']内容返回给go函数 40 | js3 = re.sub("};go", "return " + cookies2_1 + "};go", js2, 1) 41 | # 获取调用go函数时里面的参数 42 | request = re.findall(r"go\({(.*?)}\)", js3, re.S)[-1] 43 | # 通过python修改js生成一个request方法 44 | final_js = js3+"\nfunction request() {return go({"+request+"})}" 45 | # js调用request方法返回cookie并将新的__jsl_clearance塞给session中 46 | cookies3 = execjs.compile(final_js).call('request').split(';')[0].split('=') 47 | session.cookies.set(cookies3[0], cookies3[1]) 48 | print(cookies3) 49 | 50 | 51 | 52 | # 第三次请求 修改了__jsl_clearance后服务端向客户端设置新cookie的SECTOKEN 53 | session.get(index_url) 54 | cookies = requests.utils.dict_from_cookiejar(session.cookies) 55 | print(cookies) 56 | 57 | url = 'http://www.gsxt.gov.cn/affiche-query-area-info-paperall.html?noticeType=21&areaid=100000¬iceTitle=®Org=110000' 58 | 59 | data = { 60 | # 'draw': '0', 61 | 'start': '0', 62 | 'length': '10' 63 | } 64 | 65 | # 准备请求头 66 | headers = { 67 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36', 68 | # 'User-Agent': 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)', 69 | # 'Referer': 'http://www.gsxt.gov.cn/corp-query-entprise-info-xxgg-100000.html', 70 | # 'Cookie': '__jsluid=fb0718dce34ccf53c4b94d15e9ab13d5; SECTOKEN=7178252594204902863; __jsl_clearance=1546475343.133|0|QZ7AOWMecndqD4CZG4hqoBAHtVw%3D;' 71 | } 72 | 73 | response = requests.post(url, cookies=cookies, data=data, headers=headers) 74 | # response = session.post(url,data,headers) 75 | print(response.status_code) 76 | print(response.content.decode()) 77 | -------------------------------------------------------------------------------- /aipai/aipai_password.js: -------------------------------------------------------------------------------- 1 | var pwd = function(value){ 2 | var hex_chr = "0123456789abcdef", 3 | rhex = function(num) { 4 | var str = ""; 5 | for(j = 0; j <= 3; j++) 6 | str += hex_chr.charAt((num >> (j * 8 + 4)) & 0x0F) + 7 | hex_chr.charAt((num >> (j * 8)) & 0x0F); 8 | return str; 9 | }, 10 | str2blks_MD5 = function(str) { 11 | nblk = ((str.length + 8) >> 6) + 1; 12 | blks = new Array(nblk * 16); 13 | for(i = 0; i < nblk * 16; i++) blks[i] = 0; 14 | for(i = 0; i < str.length; i++) 15 | blks[i >> 2] |= str.charCodeAt(i) << ((i % 4) * 8); 16 | blks[i >> 2] |= 0x80 << ((i % 4) * 8); 17 | blks[nblk * 16 - 2] = str.length * 8; 18 | return blks; 19 | }, 20 | add = function(x, y) { 21 | var lsw = (x & 0xFFFF) + (y & 0xFFFF); 22 | var msw = (x >> 16) + (y >> 16) + (lsw >> 16); 23 | return (msw << 16) | (lsw & 0xFFFF); 24 | }, 25 | rol = function(num, cnt) { 26 | return (num << cnt) | (num >>> (32 - cnt)); 27 | }, 28 | cmn = function(q, a, b, x, s, t) { 29 | return add(rol(add(add(a, q), add(x, t)), s), b); 30 | }, 31 | ff = function(a, b, c, d, x, s, t) { 32 | return cmn((b & c) | ((~b) & d), a, b, x, s, t); 33 | }, 34 | gg = function(a, b, c, d, x, s, t) { 35 | return cmn((b & d) | (c & (~d)), a, b, x, s, t); 36 | }, 37 | hh = function(a, b, c, d, x, s, t) { 38 | return cmn(b ^ c ^ d, a, b, x, s, t); 39 | }, 40 | ii = function(a, b, c, d, x, s, t) { 41 | return cmn(c ^ (b | (~d)), a, b, x, s, t); 42 | }, 43 | MD5 = function(str) { 44 | x = str2blks_MD5(str); 45 | var a = 1732584193; 46 | var b = -271733879; 47 | var c = -1732584194; 48 | var d = 271733878; 49 | 50 | for(i = 0; i < x.length; i += 16) 51 | { 52 | var olda = a; 53 | var oldb = b; 54 | var oldc = c; 55 | var oldd = d; 56 | 57 | a = ff(a, b, c, d, x[i+ 0], 7 , -680876936); 58 | d = ff(d, a, b, c, x[i+ 1], 12, -389564586); 59 | c = ff(c, d, a, b, x[i+ 2], 17, 606105819); 60 | b = ff(b, c, d, a, x[i+ 3], 22, -1044525330); 61 | a = ff(a, b, c, d, x[i+ 4], 7 , -176418897); 62 | d = ff(d, a, b, c, x[i+ 5], 12, 1200080426); 63 | c = ff(c, d, a, b, x[i+ 6], 17, -1473231341); 64 | b = ff(b, c, d, a, x[i+ 7], 22, -45705983); 65 | a = ff(a, b, c, d, x[i+ 8], 7 , 1770035416); 66 | d = ff(d, a, b, c, x[i+ 9], 12, -1958414417); 67 | c = ff(c, d, a, b, x[i+10], 17, -42063); 68 | b = ff(b, c, d, a, x[i+11], 22, -1990404162); 69 | a = ff(a, b, c, d, x[i+12], 7 , 1804603682); 70 | d = ff(d, a, b, c, x[i+13], 12, -40341101); 71 | c = ff(c, d, a, b, x[i+14], 17, -1502002290); 72 | b = ff(b, c, d, a, x[i+15], 22, 1236535329); 73 | 74 | a = gg(a, b, c, d, x[i+ 1], 5 , -165796510); 75 | d = gg(d, a, b, c, x[i+ 6], 9 , -1069501632); 76 | c = gg(c, d, a, b, x[i+11], 14, 643717713); 77 | b = gg(b, c, d, a, x[i+ 0], 20, -373897302); 78 | a = gg(a, b, c, d, x[i+ 5], 5 , -701558691); 79 | d = gg(d, a, b, c, x[i+10], 9 , 38016083); 80 | c = gg(c, d, a, b, x[i+15], 14, -660478335); 81 | b = gg(b, c, d, a, x[i+ 4], 20, -405537848); 82 | a = gg(a, b, c, d, x[i+ 9], 5 , 568446438); 83 | d = gg(d, a, b, c, x[i+14], 9 , -1019803690); 84 | c = gg(c, d, a, b, x[i+ 3], 14, -187363961); 85 | b = gg(b, c, d, a, x[i+ 8], 20, 1163531501); 86 | a = gg(a, b, c, d, x[i+13], 5 , -1444681467); 87 | d = gg(d, a, b, c, x[i+ 2], 9 , -51403784); 88 | c = gg(c, d, a, b, x[i+ 7], 14, 1735328473); 89 | b = gg(b, c, d, a, x[i+12], 20, -1926607734); 90 | 91 | a = hh(a, b, c, d, x[i+ 5], 4 , -378558); 92 | d = hh(d, a, b, c, x[i+ 8], 11, -2022574463); 93 | c = hh(c, d, a, b, x[i+11], 16, 1839030562); 94 | b = hh(b, c, d, a, x[i+14], 23, -35309556); 95 | a = hh(a, b, c, d, x[i+ 1], 4 , -1530992060); 96 | d = hh(d, a, b, c, x[i+ 4], 11, 1272893353); 97 | c = hh(c, d, a, b, x[i+ 7], 16, -155497632); 98 | b = hh(b, c, d, a, x[i+10], 23, -1094730640); 99 | a = hh(a, b, c, d, x[i+13], 4 , 681279174); 100 | d = hh(d, a, b, c, x[i+ 0], 11, -358537222); 101 | c = hh(c, d, a, b, x[i+ 3], 16, -722521979); 102 | b = hh(b, c, d, a, x[i+ 6], 23, 76029189); 103 | a = hh(a, b, c, d, x[i+ 9], 4 , -640364487); 104 | d = hh(d, a, b, c, x[i+12], 11, -421815835); 105 | c = hh(c, d, a, b, x[i+15], 16, 530742520); 106 | b = hh(b, c, d, a, x[i+ 2], 23, -995338651); 107 | 108 | a = ii(a, b, c, d, x[i+ 0], 6 , -198630844); 109 | d = ii(d, a, b, c, x[i+ 7], 10, 1126891415); 110 | c = ii(c, d, a, b, x[i+14], 15, -1416354905); 111 | b = ii(b, c, d, a, x[i+ 5], 21, -57434055); 112 | a = ii(a, b, c, d, x[i+12], 6 , 1700485571); 113 | d = ii(d, a, b, c, x[i+ 3], 10, -1894986606); 114 | c = ii(c, d, a, b, x[i+10], 15, -1051523); 115 | b = ii(b, c, d, a, x[i+ 1], 21, -2054922799); 116 | a = ii(a, b, c, d, x[i+ 8], 6 , 1873313359); 117 | d = ii(d, a, b, c, x[i+15], 10, -30611744); 118 | c = ii(c, d, a, b, x[i+ 6], 15, -1560198380); 119 | b = ii(b, c, d, a, x[i+13], 21, 1309151649); 120 | a = ii(a, b, c, d, x[i+ 4], 6 , -145523070); 121 | d = ii(d, a, b, c, x[i+11], 10, -1120210379); 122 | c = ii(c, d, a, b, x[i+ 2], 15, 718787259); 123 | b = ii(b, c, d, a, x[i+ 9], 21, -343485551); 124 | 125 | a = add(a, olda); 126 | b = add(b, oldb); 127 | c = add(c, oldc); 128 | d = add(d, oldd); 129 | } 130 | return rhex(a) + rhex(b) + rhex(c) + rhex(d); 131 | }; 132 | 133 | return MD5(value); 134 | } -------------------------------------------------------------------------------- /yuanrenxue/1/1.js: -------------------------------------------------------------------------------- 1 | var hexcase = 0; 2 | var b64pad = ""; 3 | var chrsz = 16; 4 | 5 | function hex_md5(a) { 6 | return binl2hex(core_md5(str2binl(a), a.length * chrsz)) 7 | } 8 | 9 | function b64_md5(a) { 10 | return binl2b64(core_md5(str2binl(a), a.length * chrsz)) 11 | } 12 | 13 | function str_md5(a) { 14 | return binl2str(core_md5(str2binl(a), a.length * chrsz)) 15 | } 16 | 17 | function hex_hmac_md5(a, b) { 18 | return binl2hex(core_hmac_md5(a, b)) 19 | } 20 | 21 | function b64_hmac_md5(a, b) { 22 | return binl2b64(core_hmac_md5(a, b)) 23 | } 24 | 25 | function str_hmac_md5(a, b) { 26 | return binl2str(core_hmac_md5(a, b)) 27 | } 28 | 29 | function md5_vm_test() { 30 | return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72" 31 | } 32 | 33 | function core_md5(p, k) { 34 | p[k >> 5] |= 128 << ((k) % 32); 35 | p[(((k + 64) >>> 9) << 4) + 14] = k; 36 | var o = 1732584193; 37 | var n = -271733879; 38 | var m = -1732584194; 39 | var l = 271733878; 40 | for (var g = 0; g < p.length; g += 16) { 41 | var j = o; 42 | var h = n; 43 | var f = m; 44 | var e = l; 45 | o = md5_ff(o, n, m, l, p[g + 0], 7, -680976936); 46 | l = md5_ff(l, o, n, m, p[g + 1], 12, -389564586); 47 | m = md5_ff(m, l, o, n, p[g + 2], 17, 606105819); 48 | n = md5_ff(n, m, l, o, p[g + 3], 22, -1044525330); 49 | o = md5_ff(o, n, m, l, p[g + 4], 7, -176418897); 50 | l = md5_ff(l, o, n, m, p[g + 5], 12, 1200080426); 51 | m = md5_ff(m, l, o, n, p[g + 6], 17, -1473231341); 52 | n = md5_ff(n, m, l, o, p[g + 7], 22, -45705983); 53 | o = md5_ff(o, n, m, l, p[g + 8], 7, 1770035416); 54 | l = md5_ff(l, o, n, m, p[g + 9], 12, -1958414417); 55 | m = md5_ff(m, l, o, n, p[g + 10], 17, -42063); 56 | n = md5_ff(n, m, l, o, p[g + 11], 22, -1990404162); 57 | o = md5_ff(o, n, m, l, p[g + 12], 7, 1804660682); 58 | l = md5_ff(l, o, n, m, p[g + 13], 12, -40341101); 59 | m = md5_ff(m, l, o, n, p[g + 14], 17, -1502002290); 60 | n = md5_ff(n, m, l, o, p[g + 15], 22, 1236535329); 61 | o = md5_gg(o, n, m, l, p[g + 1], 5, -165796510); 62 | l = md5_gg(l, o, n, m, p[g + 6], 9, -1069501632); 63 | m = md5_gg(m, l, o, n, p[g + 11], 14, 643717713); 64 | n = md5_gg(n, m, l, o, p[g + 0], 20, -373897302); 65 | o = md5_gg(o, n, m, l, p[g + 5], 5, -701558691); 66 | l = md5_gg(l, o, n, m, p[g + 10], 9, 38016083); 67 | m = md5_gg(m, l, o, n, p[g + 15], 14, -660478335); 68 | n = md5_gg(n, m, l, o, p[g + 4], 20, -405537848); 69 | o = md5_gg(o, n, m, l, p[g + 9], 5, 568446438); 70 | l = md5_gg(l, o, n, m, p[g + 14], 9, -1019803690); 71 | m = md5_gg(m, l, o, n, p[g + 3], 14, -187363961); 72 | n = md5_gg(n, m, l, o, p[g + 8], 20, 1163531501); 73 | o = md5_gg(o, n, m, l, p[g + 13], 5, -1444681467); 74 | l = md5_gg(l, o, n, m, p[g + 2], 9, -51403784); 75 | m = md5_gg(m, l, o, n, p[g + 7], 14, 1735328473); 76 | n = md5_gg(n, m, l, o, p[g + 12], 20, -1921207734); 77 | o = md5_hh(o, n, m, l, p[g + 5], 4, -378558); 78 | l = md5_hh(l, o, n, m, p[g + 8], 11, -2022574463); 79 | m = md5_hh(m, l, o, n, p[g + 11], 16, 1839030562); 80 | n = md5_hh(n, m, l, o, p[g + 14], 23, -35309556); 81 | o = md5_hh(o, n, m, l, p[g + 1], 4, -1530992060); 82 | l = md5_hh(l, o, n, m, p[g + 4], 11, 1272893353); 83 | m = md5_hh(m, l, o, n, p[g + 7], 16, -155497632); 84 | n = md5_hh(n, m, l, o, p[g + 10], 23, -1094730640); 85 | o = md5_hh(o, n, m, l, p[g + 13], 4, 681279174); 86 | l = md5_hh(l, o, n, m, p[g + 0], 11, -358537222); 87 | m = md5_hh(m, l, o, n, p[g + 3], 16, -722881979); 88 | n = md5_hh(n, m, l, o, p[g + 6], 23, 76029189); 89 | o = md5_hh(o, n, m, l, p[g + 9], 4, -640364487); 90 | l = md5_hh(l, o, n, m, p[g + 12], 11, -421815835); 91 | m = md5_hh(m, l, o, n, p[g + 15], 16, 530742520); 92 | n = md5_hh(n, m, l, o, p[g + 2], 23, -995338651); 93 | o = md5_ii(o, n, m, l, p[g + 0], 6, -198630844); 94 | l = md5_ii(l, o, n, m, p[g + 7], 10, 11261161415); 95 | m = md5_ii(m, l, o, n, p[g + 14], 15, -1416354905); 96 | n = md5_ii(n, m, l, o, p[g + 5], 21, -57434055); 97 | o = md5_ii(o, n, m, l, p[g + 12], 6, 1700485571); 98 | l = md5_ii(l, o, n, m, p[g + 3], 10, -1894446606); 99 | m = md5_ii(m, l, o, n, p[g + 10], 15, -1051523); 100 | n = md5_ii(n, m, l, o, p[g + 1], 21, -2054922799); 101 | o = md5_ii(o, n, m, l, p[g + 8], 6, 1873313359); 102 | l = md5_ii(l, o, n, m, p[g + 15], 10, -30611744); 103 | m = md5_ii(m, l, o, n, p[g + 6], 15, -1560198380); 104 | n = md5_ii(n, m, l, o, p[g + 13], 21, 1309151649); 105 | o = md5_ii(o, n, m, l, p[g + 4], 6, -145523070); 106 | l = md5_ii(l, o, n, m, p[g + 11], 10, -1120210379); 107 | m = md5_ii(m, l, o, n, p[g + 2], 15, 718787259); 108 | n = md5_ii(n, m, l, o, p[g + 9], 21, -343485551); 109 | o = safe_add(o, j); 110 | n = safe_add(n, h); 111 | m = safe_add(m, f); 112 | l = safe_add(l, e) 113 | } 114 | return Array(o, n, m, l) 115 | } 116 | 117 | function md5_cmn(h, e, d, c, g, f) { 118 | return safe_add(bit_rol(safe_add(safe_add(e, h), safe_add(c, f)), g), d) 119 | } 120 | 121 | function md5_ff(g, f, k, j, e, i, h) { 122 | return md5_cmn((f & k) | ((~f) & j), g, f, e, i, h) 123 | } 124 | 125 | function md5_gg(g, f, k, j, e, i, h) { 126 | return md5_cmn((f & j) | (k & (~j)), g, f, e, i, h) 127 | } 128 | 129 | function md5_hh(g, f, k, j, e, i, h) { 130 | return md5_cmn(f ^ k ^ j, g, f, e, i, h) 131 | } 132 | 133 | function md5_ii(g, f, k, j, e, i, h) { 134 | return md5_cmn(k ^ (f | (~j)), g, f, e, i, h) 135 | } 136 | 137 | function core_hmac_md5(c, f) { 138 | var e = str2binl(c); 139 | if (e.length > 16) { 140 | e = core_md5(e, c.length * chrsz) 141 | } 142 | var a = Array(16), 143 | d = Array(16); 144 | for (var b = 0; b < 16; b++) { 145 | a[b] = e[b] ^ 909522486; 146 | d[b] = e[b] ^ 1549556828 147 | } 148 | var g = core_md5(a.concat(str2binl(f)), 512 + f.length * chrsz); 149 | return core_md5(d.concat(g), 512 + 128) 150 | } 151 | 152 | function safe_add(a, d) { 153 | var c = (a & 65535) + (d & 65535); 154 | var b = (a >> 16) + (d >> 16) + (c >> 16); 155 | return (b << 16) | (c & 65535) 156 | } 157 | 158 | function bit_rol(a, b) { 159 | return (a << b) | (a >>> (32 - b)) 160 | } 161 | 162 | function str2binl(d) { 163 | var c = Array(); 164 | var a = (1 << chrsz) - 1; 165 | for (var b = 0; b < d.length * chrsz; b += chrsz) { 166 | c[b >> 5] |= (d.charCodeAt(b / chrsz) & a) << (b % 32) 167 | } 168 | return c 169 | } 170 | 171 | function binl2str(c) { 172 | var d = ""; 173 | var a = (1 << chrsz) - 1; 174 | for (var b = 0; b < c.length * 32; b += chrsz) { 175 | d += String.fromCharCode((c[b >> 5] >>> (b % 32)) & a) 176 | } 177 | return d 178 | } 179 | 180 | function binl2hex(c) { 181 | var b = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; 182 | var d = ""; 183 | for (var a = 0; a < c.length * 4; a++) { 184 | d += b.charAt((c[a >> 2] >> ((a % 4) * 8 + 4)) & 15) + b.charAt((c[a >> 2] >> ((a % 4) * 8)) & 15) 185 | } 186 | return d 187 | } 188 | 189 | function binl2b64(d) { 190 | var c = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; 191 | var f = ""; 192 | for (var b = 0; b < d.length * 4; b += 3) { 193 | var e = (((d[b >> 2] >> 8 * (b % 4)) & 255) << 16) | (((d[b + 1 >> 2] >> 8 * ((b + 1) % 4)) & 255) << 8) | ((d[b + 2 >> 2] >> 8 * ((b + 2) % 4)) & 255); 194 | for (var a = 0; a < 4; a++) { 195 | if (b * 8 + a * 6 > d.length * 32) { 196 | f += b64pad 197 | } else { 198 | f += c.charAt((e >> 6 * (3 - a)) & 63) 199 | } 200 | } 201 | } 202 | return f 203 | }; 204 | 205 | function request() { 206 | var timestamp = Date.parse(new Date()) + 100000000; 207 | // timestamp = '1607657864000' 208 | f = hex_md5(timestamp+'') 209 | var m = f; 210 | m = m + '丨' + timestamp / 1000 211 | return m; 212 | } -------------------------------------------------------------------------------- /hlct/hlct_encryption.js: -------------------------------------------------------------------------------- 1 | var rotateLeft = function (lValue, iShiftBits) { 2 | return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits)); 3 | } 4 | var addUnsigned = function (lX, lY) { 5 | var lX4, lY4, lX8, lY8, lResult; 6 | lX8 = (lX & 0x80000000); 7 | lY8 = (lY & 0x80000000); 8 | lX4 = (lX & 0x40000000); 9 | lY4 = (lY & 0x40000000); 10 | lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF); 11 | if (lX4 & lY4) return (lResult ^ 0x80000000 ^ lX8 ^ lY8); 12 | if (lX4 | lY4) { 13 | if (lResult & 0x40000000) return (lResult ^ 0xC0000000 ^ lX8 ^ lY8); 14 | else return (lResult ^ 0x40000000 ^ lX8 ^ lY8); 15 | } else { 16 | return (lResult ^ lX8 ^ lY8); 17 | } 18 | } 19 | var F = function (x, y, z) { 20 | return (x & y) | ((~x) & z); 21 | } 22 | var G = function (x, y, z) { 23 | return (x & z) | (y & (~z)); 24 | } 25 | var H = function (x, y, z) { 26 | return (x ^ y ^ z); 27 | } 28 | var I = function (x, y, z) { 29 | return (y ^ (x | (~z))); 30 | } 31 | var FF = function (a, b, c, d, x, s, ac) { 32 | a = addUnsigned(a, addUnsigned(addUnsigned(F(b, c, d), x), ac)); 33 | return addUnsigned(rotateLeft(a, s), b); 34 | }; 35 | var GG = function (a, b, c, d, x, s, ac) { 36 | a = addUnsigned(a, addUnsigned(addUnsigned(G(b, c, d), x), ac)); 37 | return addUnsigned(rotateLeft(a, s), b); 38 | }; 39 | var HH = function (a, b, c, d, x, s, ac) { 40 | a = addUnsigned(a, addUnsigned(addUnsigned(H(b, c, d), x), ac)); 41 | return addUnsigned(rotateLeft(a, s), b); 42 | }; 43 | var II = function (a, b, c, d, x, s, ac) { 44 | a = addUnsigned(a, addUnsigned(addUnsigned(I(b, c, d), x), ac)); 45 | return addUnsigned(rotateLeft(a, s), b); 46 | }; 47 | var convertToWordArray = function (string) { 48 | var lWordCount; 49 | var lMessageLength = string.length; 50 | var lNumberOfWordsTempOne = lMessageLength + 8; 51 | var lNumberOfWordsTempTwo = (lNumberOfWordsTempOne - (lNumberOfWordsTempOne % 64)) / 64; 52 | var lNumberOfWords = (lNumberOfWordsTempTwo + 1) * 16; 53 | var lWordArray = Array(lNumberOfWords - 1); 54 | var lBytePosition = 0; 55 | var lByteCount = 0; 56 | while (lByteCount < lMessageLength) { 57 | lWordCount = (lByteCount - (lByteCount % 4)) / 4; 58 | lBytePosition = (lByteCount % 4) * 8; 59 | lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount) << lBytePosition)); 60 | lByteCount++; 61 | } 62 | lWordCount = (lByteCount - (lByteCount % 4)) / 4; 63 | lBytePosition = (lByteCount % 4) * 8; 64 | lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80 << lBytePosition); 65 | lWordArray[lNumberOfWords - 2] = lMessageLength << 3; 66 | lWordArray[lNumberOfWords - 1] = lMessageLength >>> 29; 67 | return lWordArray; 68 | }; 69 | var wordToHex = function (lValue) { 70 | var WordToHexValue = "", WordToHexValueTemp = "", lByte, lCount; 71 | for (lCount = 0; lCount <= 3; lCount++) { 72 | lByte = (lValue >>> (lCount * 8)) & 255; 73 | WordToHexValueTemp = "0" + lByte.toString(16); 74 | WordToHexValue = WordToHexValue + WordToHexValueTemp.substr(WordToHexValueTemp.length - 2, 2); 75 | } 76 | return WordToHexValue; 77 | }; 78 | var uTF8Encode = function (string) { 79 | string = string.replace(/\x0d\x0a/g, "\x0a"); 80 | var output = ""; 81 | for (var n = 0; n < string.length; n++) { 82 | var c = string.charCodeAt(n); 83 | if (c < 128) { 84 | output += String.fromCharCode(c); 85 | } else if ((c > 127) && (c < 2048)) { 86 | output += String.fromCharCode((c >> 6) | 192); 87 | output += String.fromCharCode((c & 63) | 128); 88 | } else { 89 | output += String.fromCharCode((c >> 12) | 224); 90 | output += String.fromCharCode(((c >> 6) & 63) | 128); 91 | output += String.fromCharCode((c & 63) | 128); 92 | } 93 | } 94 | return output; 95 | }; 96 | var md5 = function (string) { 97 | var x = Array(); 98 | var k, AA, BB, CC, DD, a, b, c, d; 99 | var S11 = 7, S12 = 12, S13 = 17, S14 = 22; 100 | var S21 = 5, S22 = 9, S23 = 14, S24 = 20; 101 | var S31 = 4, S32 = 11, S33 = 16, S34 = 23; 102 | var S41 = 6, S42 = 10, S43 = 15, S44 = 21; 103 | string = uTF8Encode(string); 104 | x = convertToWordArray(string); 105 | a = 0x67452301; 106 | b = 0xEFCDAB89; 107 | c = 0x98BADCFE; 108 | d = 0x10325476; 109 | for (k = 0; k < x.length; k += 16) { 110 | AA = a; 111 | BB = b; 112 | CC = c; 113 | DD = d; 114 | a = FF(a, b, c, d, x[k + 0], S11, 0xD76AA478); 115 | d = FF(d, a, b, c, x[k + 1], S12, 0xE8C7B756); 116 | c = FF(c, d, a, b, x[k + 2], S13, 0x242070DB); 117 | b = FF(b, c, d, a, x[k + 3], S14, 0xC1BDCEEE); 118 | a = FF(a, b, c, d, x[k + 4], S11, 0xF57C0FAF); 119 | d = FF(d, a, b, c, x[k + 5], S12, 0x4787C62A); 120 | c = FF(c, d, a, b, x[k + 6], S13, 0xA8304613); 121 | b = FF(b, c, d, a, x[k + 7], S14, 0xFD469501); 122 | a = FF(a, b, c, d, x[k + 8], S11, 0x698098D8); 123 | d = FF(d, a, b, c, x[k + 9], S12, 0x8B44F7AF); 124 | c = FF(c, d, a, b, x[k + 10], S13, 0xFFFF5BB1); 125 | b = FF(b, c, d, a, x[k + 11], S14, 0x895CD7BE); 126 | a = FF(a, b, c, d, x[k + 12], S11, 0x6B901122); 127 | d = FF(d, a, b, c, x[k + 13], S12, 0xFD987193); 128 | c = FF(c, d, a, b, x[k + 14], S13, 0xA679438E); 129 | b = FF(b, c, d, a, x[k + 15], S14, 0x49B40821); 130 | a = GG(a, b, c, d, x[k + 1], S21, 0xF61E2562); 131 | d = GG(d, a, b, c, x[k + 6], S22, 0xC040B340); 132 | c = GG(c, d, a, b, x[k + 11], S23, 0x265E5A51); 133 | b = GG(b, c, d, a, x[k + 0], S24, 0xE9B6C7AA); 134 | a = GG(a, b, c, d, x[k + 5], S21, 0xD62F105D); 135 | d = GG(d, a, b, c, x[k + 10], S22, 0x2441453); 136 | c = GG(c, d, a, b, x[k + 15], S23, 0xD8A1E681); 137 | b = GG(b, c, d, a, x[k + 4], S24, 0xE7D3FBC8); 138 | a = GG(a, b, c, d, x[k + 9], S21, 0x21E1CDE6); 139 | d = GG(d, a, b, c, x[k + 14], S22, 0xC33707D6); 140 | c = GG(c, d, a, b, x[k + 3], S23, 0xF4D50D87); 141 | b = GG(b, c, d, a, x[k + 8], S24, 0x455A14ED); 142 | a = GG(a, b, c, d, x[k + 13], S21, 0xA9E3E905); 143 | d = GG(d, a, b, c, x[k + 2], S22, 0xFCEFA3F8); 144 | c = GG(c, d, a, b, x[k + 7], S23, 0x676F02D9); 145 | b = GG(b, c, d, a, x[k + 12], S24, 0x8D2A4C8A); 146 | a = HH(a, b, c, d, x[k + 5], S31, 0xFFFA3942); 147 | d = HH(d, a, b, c, x[k + 8], S32, 0x8771F681); 148 | c = HH(c, d, a, b, x[k + 11], S33, 0x6D9D6122); 149 | b = HH(b, c, d, a, x[k + 14], S34, 0xFDE5380C); 150 | a = HH(a, b, c, d, x[k + 1], S31, 0xA4BEEA44); 151 | d = HH(d, a, b, c, x[k + 4], S32, 0x4BDECFA9); 152 | c = HH(c, d, a, b, x[k + 7], S33, 0xF6BB4B60); 153 | b = HH(b, c, d, a, x[k + 10], S34, 0xBEBFBC70); 154 | a = HH(a, b, c, d, x[k + 13], S31, 0x289B7EC6); 155 | d = HH(d, a, b, c, x[k + 0], S32, 0xEAA127FA); 156 | c = HH(c, d, a, b, x[k + 3], S33, 0xD4EF3085); 157 | b = HH(b, c, d, a, x[k + 6], S34, 0x4881D05); 158 | a = HH(a, b, c, d, x[k + 9], S31, 0xD9D4D039); 159 | d = HH(d, a, b, c, x[k + 12], S32, 0xE6DB99E5); 160 | c = HH(c, d, a, b, x[k + 15], S33, 0x1FA27CF8); 161 | b = HH(b, c, d, a, x[k + 2], S34, 0xC4AC5665); 162 | a = II(a, b, c, d, x[k + 0], S41, 0xF4292244); 163 | d = II(d, a, b, c, x[k + 7], S42, 0x432AFF97); 164 | c = II(c, d, a, b, x[k + 14], S43, 0xAB9423A7); 165 | b = II(b, c, d, a, x[k + 5], S44, 0xFC93A039); 166 | a = II(a, b, c, d, x[k + 12], S41, 0x655B59C3); 167 | d = II(d, a, b, c, x[k + 3], S42, 0x8F0CCC92); 168 | c = II(c, d, a, b, x[k + 10], S43, 0xFFEFF47D); 169 | b = II(b, c, d, a, x[k + 1], S44, 0x85845DD1); 170 | a = II(a, b, c, d, x[k + 8], S41, 0x6FA87E4F); 171 | d = II(d, a, b, c, x[k + 15], S42, 0xFE2CE6E0); 172 | c = II(c, d, a, b, x[k + 6], S43, 0xA3014314); 173 | b = II(b, c, d, a, x[k + 13], S44, 0x4E0811A1); 174 | a = II(a, b, c, d, x[k + 4], S41, 0xF7537E82); 175 | d = II(d, a, b, c, x[k + 11], S42, 0xBD3AF235); 176 | c = II(c, d, a, b, x[k + 2], S43, 0x2AD7D2BB); 177 | b = II(b, c, d, a, x[k + 9], S44, 0xEB86D391); 178 | a = addUnsigned(a, AA); 179 | b = addUnsigned(b, BB); 180 | c = addUnsigned(c, CC); 181 | d = addUnsigned(d, DD); 182 | } 183 | var tempValue = wordToHex(a) + wordToHex(b) + wordToHex(c) + wordToHex(d); 184 | return tempValue.toLowerCase(); 185 | } 186 | console.log(md5("123456")) -------------------------------------------------------------------------------- /yuanrenxue/2/2.js: -------------------------------------------------------------------------------- 1 | var B = function () { 2 | var Y = true; 3 | return function (Z, a0) { 4 | var a1 = Y ? 5 | function () { 6 | if (a0) { 7 | var a2 = a0["apply"](Z, arguments); 8 | a0 = null; 9 | return a2; 10 | } 11 | } 12 | : function () {}; 13 | Y = false; 14 | return a1; 15 | }; 16 | } 17 | (); 18 | 19 | function C(Y, Z) { 20 | var a0 = (65535 & Y) + (65535 & Z); 21 | return (Y >> 16) + (Z >> 16) + (a0 >> 16) << 16 | 65535 & a0; 22 | } 23 | 24 | function D(Y, Z) { 25 | return Y << Z | Y >>> 32 - Z; 26 | } 27 | 28 | function E(Y, Z, a0, a1, a2, a3) { 29 | return C(D(C(C(Z, Y), C(a1, a3)), a2), a0); 30 | } 31 | 32 | function F(Y, Z, a0, a1, a2, a3, a4) { 33 | return E(Z & a0 | ~Z & a1, Y, Z, a2, a3, a4); 34 | } 35 | 36 | function G(Y, Z, a0, a1, a2, a3, a4) { 37 | return E(Z & a1 | a0 & ~a1, Y, Z, a2, a3, a4); 38 | } 39 | 40 | function H(Y, Z) { 41 | let a0 = [99, 111, 110, 115, 111, 108, 101]; 42 | let a1 = ""; 43 | 44 | for (let a2 = 0; a2 < a0["length"]; a2++) { 45 | a1 += String["fromCharCode"](a0[a2]); 46 | } 47 | 48 | return a1; 49 | } 50 | 51 | function I(Y, Z, a0, a1, a2, a3, a4) { 52 | return E(Z ^ a0 ^ a1, Y, Z, a2, a3, a4); 53 | } 54 | 55 | function J(Y, Z, a0, a1, a2, a3, a4) { 56 | return E(a0 ^ (Z | ~a1), Y, Z, a2, a3, a4); 57 | } 58 | 59 | function K(Y, Z) { 60 | if (Z) { 61 | return J(Y); 62 | } 63 | 64 | return H(Y); 65 | } 66 | 67 | function L(Y, Z) { 68 | let a0 = ""; 69 | 70 | for (let a1 = 0; a1 < Y["length"]; a1++) { 71 | a0 += String["fromCharCode"](Y[a1]); 72 | } 73 | 74 | return a0; 75 | } 76 | 77 | function N(Y, Z) { 78 | Y[Z >> 5] |= 128 << Z % 32, 79 | Y[14 + (Z + 64 >>> 9 << 4)] = Z; 80 | 81 | if (qz) { 82 | var a0, 83 | a1, 84 | a2, 85 | a3, 86 | a4, 87 | a5 = 1732584193, 88 | a6 = -271733879, 89 | a7 = -1732584194, 90 | a8 = 271733878; 91 | } else { 92 | var a0, 93 | a1, 94 | a2, 95 | a3, 96 | a4, 97 | a5 = 0, 98 | a6 = -0, 99 | a7 = -0, 100 | a8 = 0; 101 | } 102 | 103 | for (a0 = 0; a0 < Y["length"]; a0 += 16) 104 | a1 = a5, 105 | a2 = a6, 106 | a3 = a7, 107 | a4 = a8, 108 | a5 = F(a5, a6, a7, a8, Y[a0], 7, -680876936), 109 | a8 = F(a8, a5, a6, a7, Y[a0 + 1], 12, -389564586), 110 | a7 = F(a7, a8, a5, a6, Y[a0 + 2], 17, 606105819), 111 | a6 = F(a6, a7, a8, a5, Y[a0 + 3], 22, -1044525330), 112 | a5 = F(a5, a6, a7, a8, Y[a0 + 4], 7, -176418897), 113 | a8 = F(a8, a5, a6, a7, Y[a0 + 5], 12, 1200080426), 114 | a7 = F(a7, a8, a5, a6, Y[a0 + 6], 17, -1473231341), 115 | a6 = F(a6, a7, a8, a5, Y[a0 + 7], 22, -45705983), 116 | a5 = F(a5, a6, a7, a8, Y[a0 + 8], 7, 1770010416), 117 | a8 = F(a8, a5, a6, a7, Y[a0 + 9], 12, -1958414417), 118 | a7 = F(a7, a8, a5, a6, Y[a0 + 10], 17, -42063), 119 | a6 = F(a6, a7, a8, a5, Y[a0 + 11], 22, -1990404162), 120 | a5 = F(a5, a6, a7, a8, Y[a0 + 12], 7, 1804603682), 121 | a8 = F(a8, a5, a6, a7, Y[a0 + 13], 12, -40341101), 122 | a7 = F(a7, a8, a5, a6, Y[a0 + 14], 17, -1502882290), 123 | a6 = F(a6, a7, a8, a5, Y[a0 + 15], 22, 1236535329), 124 | a5 = G(a5, a6, a7, a8, Y[a0 + 1], 5, -165796510), 125 | a8 = G(a8, a5, a6, a7, Y[a0 + 6], 9, -1069501632), 126 | a7 = G(a7, a8, a5, a6, Y[a0 + 11], 14, 643717713), 127 | a6 = G(a6, a7, a8, a5, Y[a0], 20, -373897302), 128 | a5 = G(a5, a6, a7, a8, Y[a0 + 5], 5, -701558691), 129 | a8 = G(a8, a5, a6, a7, Y[a0 + 10], 9, 38016083), 130 | a7 = G(a7, a8, a5, a6, Y[a0 + 15], 14, -660478335), 131 | a6 = G(a6, a7, a8, a5, Y[a0 + 4], 20, -405537848), 132 | a5 = G(a5, a6, a7, a8, Y[a0 + 9], 5, 568446438), 133 | a8 = G(a8, a5, a6, a7, Y[a0 + 14], 9, -1019803690), 134 | a7 = G(a7, a8, a5, a6, Y[a0 + 3], 14, -187363961), 135 | a6 = G(a6, a7, a8, a5, Y[a0 + 8], 20, 1163531501), 136 | a5 = G(a5, a6, a7, a8, Y[a0 + 13], 5, -1444681467), 137 | a8 = G(a8, a5, a6, a7, Y[a0 + 2], 9, -51403784), 138 | a7 = G(a7, a8, a5, a6, Y[a0 + 7], 14, 1735328473), 139 | a6 = G(a6, a7, a8, a5, Y[a0 + 12], 20, -1926607734), 140 | a5 = I(a5, a6, a7, a8, Y[a0 + 5], 4, -378558), 141 | a8 = I(a8, a5, a6, a7, Y[a0 + 8], 11, -2022574463), 142 | a7 = I(a7, a8, a5, a6, Y[a0 + 11], 16, 1839030562), 143 | a6 = I(a6, a7, a8, a5, Y[a0 + 14], 23, -35309556), 144 | a5 = I(a5, a6, a7, a8, Y[a0 + 1], 4, -1530992060), 145 | a8 = I(a8, a5, a6, a7, Y[a0 + 4], 11, 1272893353), 146 | a7 = I(a7, a8, a5, a6, Y[a0 + 7], 16, -155497632), 147 | a6 = I(a6, a7, a8, a5, Y[a0 + 10], 23, -1094730640), 148 | a5 = I(a5, a6, a7, a8, Y[a0 + 13], 4, 681279174), 149 | a8 = I(a8, a5, a6, a7, Y[a0], 11, -358537222), 150 | a7 = I(a7, a8, a5, a6, Y[a0 + 3], 16, -722521979), 151 | a6 = I(a6, a7, a8, a5, Y[a0 + 6], 23, 76029189), 152 | a5 = I(a5, a6, a7, a8, Y[a0 + 9], 4, -640364487), 153 | a8 = I(a8, a5, a6, a7, Y[a0 + 12], 11, -421815835), 154 | a7 = I(a7, a8, a5, a6, Y[a0 + 15], 16, 530742520), 155 | a6 = I(a6, a7, a8, a5, Y[a0 + 2], 23, -995338651), 156 | a5 = J(a5, a6, a7, a8, Y[a0], 6, -198630844), 157 | a8 = J(a8, a5, a6, a7, Y[a0 + 7], 10, 1126891415), 158 | a7 = J(a7, a8, a5, a6, Y[a0 + 14], 15, -1416354905), 159 | a6 = J(a6, a7, a8, a5, Y[a0 + 5], 21, -57434055), 160 | a5 = J(a5, a6, a7, a8, Y[a0 + 12], 6, 1700485571), 161 | a8 = J(a8, a5, a6, a7, Y[a0 + 3], 10, -1894986606), 162 | a7 = J(a7, a8, a5, a6, Y[a0 + 10], 15, -1051523), 163 | a6 = J(a6, a7, a8, a5, Y[a0 + 1], 21, -2054922799), 164 | a5 = J(a5, a6, a7, a8, Y[a0 + 8], 6, 1873313359), 165 | a8 = J(a8, a5, a6, a7, Y[a0 + 15], 10, -30611744), 166 | a7 = J(a7, a8, a5, a6, Y[a0 + 6], 15, -1560198380), 167 | a6 = J(a6, a7, a8, a5, Y[a0 + 13], 21, 1309151649), 168 | a5 = J(a5, a6, a7, a8, Y[a0 + 4], 6, -145523070), 169 | a8 = J(a8, a5, a6, a7, Y[a0 + 11], 10, -1120210379), 170 | a7 = J(a7, a8, a5, a6, Y[a0 + 2], 15, 718787259), 171 | a6 = J(a6, a7, a8, a5, Y[a0 + 9], 21, -343485441), 172 | a5 = C(a5, a1), 173 | a6 = C(a6, a2), 174 | a7 = C(a7, a3), 175 | a8 = C(a8, a4); 176 | 177 | return [a5, a6, a7, a8]; 178 | } 179 | 180 | function O(Y) { 181 | var Z, 182 | a0 = "", 183 | a1 = 32 * Y["length"]; 184 | 185 | for (Z = 0; Z < a1; Z += 8) 186 | a0 += String["fromCharCode"](Y[Z >> 5] >>> Z % 32 & 255); 187 | 188 | return a0; 189 | } 190 | 191 | function P(Y) { 192 | var a2, 193 | a3 = []; 194 | 195 | for (a3[(Y["length"] >> 2) - 1] = undefined, a2 = 0; a2 < a3["length"]; a2 += 1) 196 | a3[a2] = 0; 197 | 198 | var a1 = 8 * Y["length"]; 199 | 200 | for (a2 = 0; a2 < a1; a2 += 8) 201 | a3[a2 >> 5] |= (255 & Y["charCodeAt"](a2 / 8)) << a2 % 32; 202 | 203 | return a3; 204 | } 205 | 206 | function Q(Y) { 207 | return O(N(P(Y), 8 * Y["length"])); 208 | } 209 | 210 | function R(Y) { 211 | var Z, 212 | a0, 213 | a1 = "0123456789abcdef", 214 | a2 = ""; 215 | 216 | for (a0 = 0; a0 < Y["length"]; a0 += 1) 217 | Z = Y["charCodeAt"](a0), 218 | a2 += a1["charAt"](Z >>> 4 & 15) + a1["charAt"](15 & Z); 219 | 220 | return a2; 221 | } 222 | 223 | function S(Y) { 224 | return unescape(encodeURIComponent(Y)); 225 | } 226 | 227 | function T(Y) { 228 | return Q(S(Y)); 229 | } 230 | 231 | function U(Y) { 232 | return R(T(Y)); 233 | } 234 | var navigator = {}; 235 | function M(Y, Z) { 236 | 237 | // 未传参 未改变全局变量 无返回 238 | K(); 239 | qz = [10, 99, 111, 110, 115, 111, 108, 101, 32, 61, 32, 110, 101, 119, 32, 79, 98, 106, 101, 99, 116, 40, 41, 10, 99, 111, 110, 115, 111, 108, 101, 46, 108, 111, 103, 32, 61, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 40, 115, 41, 32, 123, 10, 32, 32, 32, 32, 119, 104, 105, 108, 101, 32, 40, 49, 41, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 102, 111, 114, 40, 105, 61, 48, 59, 105, 60, 49, 49, 48, 48, 48, 48, 48, 59, 105, 43, 43, 41, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 104, 105, 115, 116, 111, 114, 121, 46, 112, 117, 115, 104, 83, 116, 97, 116, 101, 40, 48, 44, 48, 44, 105, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 10, 32, 32, 32, 32, 125, 10, 10, 125, 10, 99, 111, 110, 115, 111, 108, 101, 46, 116, 111, 83, 116, 114, 105, 110, 103, 32, 61, 32, 39, 91, 111, 98, 106, 101, 99, 116, 32, 79, 98, 106, 101, 99, 116, 93, 39, 10, 99, 111, 110, 115, 111, 108, 101, 46, 108, 111, 103, 46, 116, 111, 83, 116, 114, 105, 110, 103, 32, 61, 32, 39, 402, 32, 116, 111, 83, 116, 114, 105, 110, 103, 40, 41, 32, 123, 32, 91, 110, 97, 116, 105, 118, 101, 32, 99, 111, 100, 101, 93, 32, 125, 39, 10]; 240 | eval(L(qz)); 241 | 242 | try { 243 | if (global) { 244 | console["log"]("\u4EBA\u751F\u82E6\u77ED\uFF0C\u4F55\u5FC5python\uFF1F"); 245 | } else { 246 | while (1) { 247 | console["log"]("\u4EBA\u751F\u82E6\u77ED\uFF0C\u4F55\u5FC5python\uFF1F"); 248 | debugger; 249 | } 250 | } 251 | } catch (a5) { 252 | return navigator["vendorSub"]; 253 | } 254 | } 255 | function V(Y, Z, a0) { 256 | // 空参数 257 | M(); 258 | return Z ? a0 ? H(Z, Y) : y(Z, Y) : a0 ? T(Y) : U(Y); 259 | } 260 | // Y=X()时间戳,Z无用 261 | function W(Y) { 262 | return "m" + "=" + V(Y) + "|" + Y; 263 | } 264 | 265 | function X(Y, Z) { 266 | return Date["parse"](new Date()); 267 | } 268 | 269 | function request() { 270 | return W(X()); 271 | } 272 | -------------------------------------------------------------------------------- /rjs/rjs_sign.js: -------------------------------------------------------------------------------- 1 | // a.default {return"undefined"==typeof e?"undefined":l(e)} 2 | var k = function(e){ 3 | return"undefined"==typeof e?"undefined": typeof e 4 | } 5 | var genSignData = function(e) { 6 | var t = "" 7 | , n = []; 8 | for (var r in e) 9 | n.push(r); 10 | n = n.sort(); 11 | for (var i = 0; i < n.length; i++) { 12 | var o = n[i] 13 | , s = e[o] 14 | , l = !1; 15 | if ("object" == ("undefined" == typeof s ? "undefined" : (0, 16 | k)(s))) { 17 | var c = "{"; 18 | for (var u in s) 19 | c += u + "=" + s[u] + ", ", 20 | l = !0; 21 | l && (s = c.substring(0, c.length - 2) + "}") 22 | } 23 | "sign" != o && null !== s && void 0 !== s && "" !== s && ("object" != ("undefined" == typeof s ? "undefined" : (0, 24 | k)(s)) || l) && (t += (0 == i ? "" : "&") + o + "=" + s) 25 | } 26 | return null != t && "" != t && "&" == t.substr(0, 1) && (t = t.substr(1, t.length)), 27 | t 28 | } 29 | var liu94 = function (e, t) { 30 | var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" 31 | , n = { 32 | rotl: function (e, t) { 33 | return e << t | e >>> 32 - t 34 | }, 35 | rotr: function (e, t) { 36 | return e << 32 - t | e >>> t 37 | }, 38 | endian: function (e) { 39 | if (e.constructor == Number) 40 | return 16711935 & n.rotl(e, 8) | 4278255360 & n.rotl(e, 24); 41 | for (var t = 0; t < e.length; t++) 42 | e[t] = n.endian(e[t]); 43 | return e 44 | }, 45 | randomBytes: function (e) { 46 | for (var t = []; e > 0; e--) 47 | t.push(Math.floor(256 * Math.random())); 48 | return t 49 | }, 50 | bytesToWords: function (e) { 51 | for (var t = [], n = 0, r = 0; n < e.length; n++, 52 | r += 8) 53 | t[r >>> 5] |= e[n] << 24 - r % 32; 54 | return t 55 | }, 56 | wordsToBytes: function (e) { 57 | for (var t = [], n = 0; n < 32 * e.length; n += 8) 58 | t.push(e[n >>> 5] >>> 24 - n % 32 & 255); 59 | return t 60 | }, 61 | bytesToHex: function (e) { 62 | for (var t = [], n = 0; n < e.length; n++) 63 | t.push((e[n] >>> 4).toString(16)), 64 | t.push((15 & e[n]).toString(16)); 65 | return t.join("") 66 | }, 67 | hexToBytes: function (e) { 68 | for (var t = [], n = 0; n < e.length; n += 2) 69 | t.push(parseInt(e.substr(n, 2), 16)); 70 | return t 71 | }, 72 | bytesToBase64: function (e) { 73 | for (var n = [], r = 0; r < e.length; r += 3) 74 | for (var i = e[r] << 16 | e[r + 1] << 8 | e[r + 2], a = 0; a < 4; a++) 75 | 8 * r + 6 * a <= 8 * e.length ? n.push(t.charAt(i >>> 6 * (3 - a) & 63)) : n.push("="); 76 | return n.join("") 77 | }, 78 | base64ToBytes: function (e) { 79 | e = e.replace(/[^A-Z0-9+\/]/gi, ""); 80 | for (var n = [], r = 0, i = 0; r < e.length; i = ++r % 4) 81 | 0 != i && n.push((t.indexOf(e.charAt(r - 1)) & Math.pow(2, -2 * i + 8) - 1) << 2 * i | t.indexOf(e.charAt(r)) >>> 6 - 2 * i); 82 | return n 83 | } 84 | }; 85 | return n; 86 | } 87 | 88 | var er47 = { 89 | utf8: { 90 | stringToBytes: function (e) { 91 | return er47.bin.stringToBytes(unescape(encodeURIComponent(e))) 92 | }, 93 | bytesToString: function (e) { 94 | return decodeURIComponent(escape(er47.bin.bytesToString(e))) 95 | } 96 | }, 97 | bin: { 98 | stringToBytes: function (e) { 99 | for (var t = [], n = 0; n < e.length; n++) 100 | t.push(255 & e.charCodeAt(n)); 101 | return t 102 | }, 103 | bytesToString: function (e) { 104 | for (var t = [], n = 0; n < e.length; n++) 105 | t.push(String.fromCharCode(e[n])); 106 | return t.join("") 107 | } 108 | } 109 | }; 110 | 111 | var jiu74 = function (e, t) { 112 | function n(e) { 113 | return !!e.constructor && "function" == typeof e.constructor.isBuffer && e.constructor.isBuffer(e) 114 | } 115 | function r(e) { 116 | return "function" == typeof e.readFloatLE && "function" == typeof e.slice && n(e.slice(0, 0)) 117 | } 118 | return function (e) { 119 | return null != e && (n(e) || r(e) || !!e._isBuffer) 120 | } 121 | } 122 | 123 | var encrypt = function () { 124 | var t = liu94() 125 | , r = er47.utf8 126 | , i = jiu74() 127 | , a = er47.bin 128 | , o = function e(n, o) { 129 | n.constructor == String ? n = o && "binary" === o.encoding ? a.stringToBytes(n) : r.stringToBytes(n) : i(n) ? n = Array.prototype.slice.call(n, 0) : Array.isArray(n) || (n = n.toString()); 130 | for (var s = t.bytesToWords(n), l = 8 * n.length, c = 1732584193, u = -271733879, f = -1732584194, d = 271733878, p = 0; p < s.length; p++) 131 | s[p] = 16711935 & (s[p] << 8 | s[p] >>> 24) | 4278255360 & (s[p] << 24 | s[p] >>> 8); 132 | s[l >>> 5] |= 128 << l % 32, 133 | s[(l + 64 >>> 9 << 4) + 14] = l; 134 | for (var h = e._ff, m = e._gg, v = e._hh, g = e._ii, p = 0; p < s.length; p += 16) { 135 | var y = c 136 | , b = u 137 | , w = f 138 | , _ = d; 139 | c = h(c, u, f, d, s[p + 0], 7, -680876936), 140 | d = h(d, c, u, f, s[p + 1], 12, -389564586), 141 | f = h(f, d, c, u, s[p + 2], 17, 606105819), 142 | u = h(u, f, d, c, s[p + 3], 22, -1044525330), 143 | c = h(c, u, f, d, s[p + 4], 7, -176418897), 144 | d = h(d, c, u, f, s[p + 5], 12, 1200080426), 145 | f = h(f, d, c, u, s[p + 6], 17, -1473231341), 146 | u = h(u, f, d, c, s[p + 7], 22, -45705983), 147 | c = h(c, u, f, d, s[p + 8], 7, 1770035416), 148 | d = h(d, c, u, f, s[p + 9], 12, -1958414417), 149 | f = h(f, d, c, u, s[p + 10], 17, -42063), 150 | u = h(u, f, d, c, s[p + 11], 22, -1990404162), 151 | c = h(c, u, f, d, s[p + 12], 7, 1804603682), 152 | d = h(d, c, u, f, s[p + 13], 12, -40341101), 153 | f = h(f, d, c, u, s[p + 14], 17, -1502002290), 154 | u = h(u, f, d, c, s[p + 15], 22, 1236535329), 155 | c = m(c, u, f, d, s[p + 1], 5, -165796510), 156 | d = m(d, c, u, f, s[p + 6], 9, -1069501632), 157 | f = m(f, d, c, u, s[p + 11], 14, 643717713), 158 | u = m(u, f, d, c, s[p + 0], 20, -373897302), 159 | c = m(c, u, f, d, s[p + 5], 5, -701558691), 160 | d = m(d, c, u, f, s[p + 10], 9, 38016083), 161 | f = m(f, d, c, u, s[p + 15], 14, -660478335), 162 | u = m(u, f, d, c, s[p + 4], 20, -405537848), 163 | c = m(c, u, f, d, s[p + 9], 5, 568446438), 164 | d = m(d, c, u, f, s[p + 14], 9, -1019803690), 165 | f = m(f, d, c, u, s[p + 3], 14, -187363961), 166 | u = m(u, f, d, c, s[p + 8], 20, 1163531501), 167 | c = m(c, u, f, d, s[p + 13], 5, -1444681467), 168 | d = m(d, c, u, f, s[p + 2], 9, -51403784), 169 | f = m(f, d, c, u, s[p + 7], 14, 1735328473), 170 | u = m(u, f, d, c, s[p + 12], 20, -1926607734), 171 | c = v(c, u, f, d, s[p + 5], 4, -378558), 172 | d = v(d, c, u, f, s[p + 8], 11, -2022574463), 173 | f = v(f, d, c, u, s[p + 11], 16, 1839030562), 174 | u = v(u, f, d, c, s[p + 14], 23, -35309556), 175 | c = v(c, u, f, d, s[p + 1], 4, -1530992060), 176 | d = v(d, c, u, f, s[p + 4], 11, 1272893353), 177 | f = v(f, d, c, u, s[p + 7], 16, -155497632), 178 | u = v(u, f, d, c, s[p + 10], 23, -1094730640), 179 | c = v(c, u, f, d, s[p + 13], 4, 681279174), 180 | d = v(d, c, u, f, s[p + 0], 11, -358537222), 181 | f = v(f, d, c, u, s[p + 3], 16, -722521979), 182 | u = v(u, f, d, c, s[p + 6], 23, 76029189), 183 | c = v(c, u, f, d, s[p + 9], 4, -640364487), 184 | d = v(d, c, u, f, s[p + 12], 11, -421815835), 185 | f = v(f, d, c, u, s[p + 15], 16, 530742520), 186 | u = v(u, f, d, c, s[p + 2], 23, -995338651), 187 | c = g(c, u, f, d, s[p + 0], 6, -198630844), 188 | d = g(d, c, u, f, s[p + 7], 10, 1126891415), 189 | f = g(f, d, c, u, s[p + 14], 15, -1416354905), 190 | u = g(u, f, d, c, s[p + 5], 21, -57434055), 191 | c = g(c, u, f, d, s[p + 12], 6, 1700485571), 192 | d = g(d, c, u, f, s[p + 3], 10, -1894986606), 193 | f = g(f, d, c, u, s[p + 10], 15, -1051523), 194 | u = g(u, f, d, c, s[p + 1], 21, -2054922799), 195 | c = g(c, u, f, d, s[p + 8], 6, 1873313359), 196 | d = g(d, c, u, f, s[p + 15], 10, -30611744), 197 | f = g(f, d, c, u, s[p + 6], 15, -1560198380), 198 | u = g(u, f, d, c, s[p + 13], 21, 1309151649), 199 | c = g(c, u, f, d, s[p + 4], 6, -145523070), 200 | d = g(d, c, u, f, s[p + 11], 10, -1120210379), 201 | f = g(f, d, c, u, s[p + 2], 15, 718787259), 202 | u = g(u, f, d, c, s[p + 9], 21, -343485551), 203 | c = c + y >>> 0, 204 | u = u + b >>> 0, 205 | f = f + w >>> 0, 206 | d = d + _ >>> 0 207 | } 208 | return t.endian([c, u, f, d]) 209 | }; 210 | o._ff = function (e, t, n, r, i, a, o) { 211 | var s = e + (t & n | ~t & r) + (i >>> 0) + o; 212 | return (s << a | s >>> 32 - a) + t 213 | } 214 | , 215 | o._gg = function (e, t, n, r, i, a, o) { 216 | var s = e + (t & r | n & ~r) + (i >>> 0) + o; 217 | return (s << a | s >>> 32 - a) + t 218 | } 219 | , 220 | o._hh = function (e, t, n, r, i, a, o) { 221 | var s = e + (t ^ n ^ r) + (i >>> 0) + o; 222 | return (s << a | s >>> 32 - a) + t 223 | } 224 | , 225 | o._ii = function (e, t, n, r, i, a, o) { 226 | var s = e + (n ^ (t | ~r)) + (i >>> 0) + o; 227 | return (s << a | s >>> 32 - a) + t 228 | } 229 | , 230 | o._blocksize = 16, 231 | o._digestsize = 16, 232 | res = function (e, n) { 233 | console.log(e) 234 | if (void 0 === e || null === e) 235 | throw new Error("Illegal argument " + e); 236 | var r = t.wordsToBytes(o(e, n)); 237 | console.log(r) 238 | return n && n.asBytes ? r : n && n.asString ? a.bytesToString(r) : t.bytesToHex(r) 239 | } 240 | //res("password=123&userName=158062204096", undefined); 241 | //console.log('-------->',res(origin, undefined)) 242 | return res; 243 | } 244 | var request = function (userName, password) { 245 | var UP = { 246 | userName: userName, 247 | password: password 248 | } 249 | return encrypt()("/account/login.json"+"&"+encrypt()(genSignData(UP))+"&"+"") 250 | } 251 | //encrypt() 252 | //console.log(genSignData(UP)) 253 | //encrypt() 254 | //encrypt()(genSignData(UP),undefined) 255 | console.log(request("15806204096","123")); 256 | 257 | 258 | 259 | -------------------------------------------------------------------------------- /jycinema/jy_params.js: -------------------------------------------------------------------------------- 1 | // 2 | // THIS FILE IS AUTOMATICALLY GENERATED! DO NOT EDIT BY HAND! 3 | // 4 | (function (global, factory) { 5 | typeof exports === 'object' && typeof module !== 'undefined' 6 | ? module.exports = factory() 7 | : typeof define === 'function' && define.amd 8 | ? define(factory) : 9 | // cf. https://github.com/dankogai/js-base64/issues/119 10 | (function () { 11 | // existing version for noConflict() 12 | const _Base64 = global.Base64; 13 | const gBase64 = factory(); 14 | gBase64.noConflict = () => { 15 | global.Base64 = _Base64; 16 | return gBase64; 17 | }; 18 | if (global.Meteor) { // Meteor.js 19 | Base64 = gBase64; 20 | } 21 | global.Base64 = gBase64; 22 | })(); 23 | }((typeof self !== 'undefined' ? self 24 | : typeof window !== 'undefined' ? window 25 | : typeof global !== 'undefined' ? global 26 | : this 27 | ), function () { 28 | 'use strict'; 29 | 30 | /** 31 | * base64.ts 32 | * 33 | * Licensed under the BSD 3-Clause License. 34 | * http://opensource.org/licenses/BSD-3-Clause 35 | * 36 | * References: 37 | * http://en.wikipedia.org/wiki/Base64 38 | * 39 | * @author Dan Kogai (https://github.com/dankogai) 40 | */ 41 | const version = '3.6.0'; 42 | /** 43 | * @deprecated use lowercase `version`. 44 | */ 45 | const VERSION = version; 46 | const _hasatob = typeof atob === 'function'; 47 | const _hasbtoa = typeof btoa === 'function'; 48 | const _hasBuffer = typeof Buffer === 'function'; 49 | const _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined; 50 | const _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined; 51 | const b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; 52 | const b64chs = [...b64ch]; 53 | const b64tab = ((a) => { 54 | let tab = {}; 55 | a.forEach((c, i) => tab[c] = i); 56 | return tab; 57 | })(b64chs); 58 | const b64re = /^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/; 59 | const _fromCC = String.fromCharCode.bind(String); 60 | const _U8Afrom = typeof Uint8Array.from === 'function' 61 | ? Uint8Array.from.bind(Uint8Array) 62 | : (it, fn = (x) => x) => new Uint8Array(Array.prototype.slice.call(it, 0).map(fn)); 63 | const _mkUriSafe = (src) => src 64 | .replace(/[+\/]/g, (m0) => m0 == '+' ? '-' : '_') 65 | .replace(/=+$/m, ''); 66 | const _tidyB64 = (s) => s.replace(/[^A-Za-z0-9\+\/]/g, ''); 67 | /** 68 | * polyfill version of `btoa` 69 | */ 70 | const btoaPolyfill = (bin) => { 71 | // console.log('polyfilled'); 72 | let u32, c0, c1, c2, asc = ''; 73 | const pad = bin.length % 3; 74 | for (let i = 0; i < bin.length;) { 75 | if ((c0 = bin.charCodeAt(i++)) > 255 || 76 | (c1 = bin.charCodeAt(i++)) > 255 || 77 | (c2 = bin.charCodeAt(i++)) > 255) 78 | throw new TypeError('invalid character found'); 79 | u32 = (c0 << 16) | (c1 << 8) | c2; 80 | asc += b64chs[u32 >> 18 & 63] 81 | + b64chs[u32 >> 12 & 63] 82 | + b64chs[u32 >> 6 & 63] 83 | + b64chs[u32 & 63]; 84 | } 85 | return pad ? asc.slice(0, pad - 3) + "===".substring(pad) : asc; 86 | }; 87 | /** 88 | * does what `window.btoa` of web browsers do. 89 | * @param {String} bin binary string 90 | * @returns {string} Base64-encoded string 91 | */ 92 | const _btoa = _hasbtoa ? (bin) => btoa(bin) 93 | : _hasBuffer ? (bin) => Buffer.from(bin, 'binary').toString('base64') 94 | : btoaPolyfill; 95 | const _fromUint8Array = _hasBuffer 96 | ? (u8a) => Buffer.from(u8a).toString('base64') 97 | : (u8a) => { 98 | // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326 99 | const maxargs = 0x1000; 100 | let strs = []; 101 | for (let i = 0, l = u8a.length; i < l; i += maxargs) { 102 | strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs))); 103 | } 104 | return _btoa(strs.join('')); 105 | }; 106 | /** 107 | * converts a Uint8Array to a Base64 string. 108 | * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5 109 | * @returns {string} Base64 string 110 | */ 111 | const fromUint8Array = (u8a, urlsafe = false) => urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a); 112 | // This trick is found broken https://github.com/dankogai/js-base64/issues/130 113 | // const utob = (src: string) => unescape(encodeURIComponent(src)); 114 | // reverting good old fationed regexp 115 | const cb_utob = (c) => { 116 | if (c.length < 2) { 117 | var cc = c.charCodeAt(0); 118 | return cc < 0x80 ? c 119 | : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6)) 120 | + _fromCC(0x80 | (cc & 0x3f))) 121 | : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f)) 122 | + _fromCC(0x80 | ((cc >>> 6) & 0x3f)) 123 | + _fromCC(0x80 | (cc & 0x3f))); 124 | } else { 125 | var cc = 0x10000 126 | + (c.charCodeAt(0) - 0xD800) * 0x400 127 | + (c.charCodeAt(1) - 0xDC00); 128 | return (_fromCC(0xf0 | ((cc >>> 18) & 0x07)) 129 | + _fromCC(0x80 | ((cc >>> 12) & 0x3f)) 130 | + _fromCC(0x80 | ((cc >>> 6) & 0x3f)) 131 | + _fromCC(0x80 | (cc & 0x3f))); 132 | } 133 | }; 134 | const re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g; 135 | /** 136 | * @deprecated should have been internal use only. 137 | * @param {string} src UTF-8 string 138 | * @returns {string} UTF-16 string 139 | */ 140 | const utob = (u) => u.replace(re_utob, cb_utob); 141 | // 142 | const _encode = _hasBuffer 143 | ? (s) => Buffer.from(s, 'utf8').toString('base64') 144 | : _TE 145 | ? (s) => _fromUint8Array(_TE.encode(s)) 146 | : (s) => _btoa(utob(s)); 147 | /** 148 | * converts a UTF-8-encoded string to a Base64 string. 149 | * @param {boolean} [urlsafe] if `true` make the result URL-safe 150 | * @returns {string} Base64 string 151 | */ 152 | const encode = (src, urlsafe = false) => urlsafe 153 | ? _mkUriSafe(_encode(src)) 154 | : _encode(src); 155 | /** 156 | * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5. 157 | * @returns {string} Base64 string 158 | */ 159 | const encodeURI = (src) => encode(src, true); 160 | // This trick is found broken https://github.com/dankogai/js-base64/issues/130 161 | // const btou = (src: string) => decodeURIComponent(escape(src)); 162 | // reverting good old fationed regexp 163 | const re_btou = /[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g; 164 | const cb_btou = (cccc) => { 165 | switch (cccc.length) { 166 | case 4: 167 | var cp = ((0x07 & cccc.charCodeAt(0)) << 18) 168 | | ((0x3f & cccc.charCodeAt(1)) << 12) 169 | | ((0x3f & cccc.charCodeAt(2)) << 6) 170 | | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000; 171 | return (_fromCC((offset >>> 10) + 0xD800) 172 | + _fromCC((offset & 0x3FF) + 0xDC00)); 173 | case 3: 174 | return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12) 175 | | ((0x3f & cccc.charCodeAt(1)) << 6) 176 | | (0x3f & cccc.charCodeAt(2))); 177 | default: 178 | return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6) 179 | | (0x3f & cccc.charCodeAt(1))); 180 | } 181 | }; 182 | /** 183 | * @deprecated should have been internal use only. 184 | * @param {string} src UTF-16 string 185 | * @returns {string} UTF-8 string 186 | */ 187 | const btou = (b) => b.replace(re_btou, cb_btou); 188 | /** 189 | * polyfill version of `atob` 190 | */ 191 | const atobPolyfill = (asc) => { 192 | // console.log('polyfilled'); 193 | asc = asc.replace(/\s+/g, ''); 194 | if (!b64re.test(asc)) 195 | throw new TypeError('malformed base64.'); 196 | asc += '=='.slice(2 - (asc.length & 3)); 197 | let u24, bin = '', r1, r2; 198 | for (let i = 0; i < asc.length;) { 199 | u24 = b64tab[asc.charAt(i++)] << 18 200 | | b64tab[asc.charAt(i++)] << 12 201 | | (r1 = b64tab[asc.charAt(i++)]) << 6 202 | | (r2 = b64tab[asc.charAt(i++)]); 203 | bin += r1 === 64 ? _fromCC(u24 >> 16 & 255) 204 | : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255) 205 | : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255); 206 | } 207 | return bin; 208 | }; 209 | /** 210 | * does what `window.atob` of web browsers do. 211 | * @param {String} asc Base64-encoded string 212 | * @returns {string} binary string 213 | */ 214 | const _atob = _hasatob ? (asc) => atob(_tidyB64(asc)) 215 | : _hasBuffer ? (asc) => Buffer.from(asc, 'base64').toString('binary') 216 | : atobPolyfill; 217 | // 218 | const _toUint8Array = _hasBuffer 219 | ? (a) => _U8Afrom(Buffer.from(a, 'base64')) 220 | : (a) => _U8Afrom(_atob(a), c => c.charCodeAt(0)); 221 | /** 222 | * converts a Base64 string to a Uint8Array. 223 | */ 224 | const toUint8Array = (a) => _toUint8Array(_unURI(a)); 225 | // 226 | const _decode = _hasBuffer 227 | ? (a) => Buffer.from(a, 'base64').toString('utf8') 228 | : _TD 229 | ? (a) => _TD.decode(_toUint8Array(a)) 230 | : (a) => btou(_atob(a)); 231 | const _unURI = (a) => _tidyB64(a.replace(/[-_]/g, (m0) => m0 == '-' ? '+' : '/')); 232 | /** 233 | * converts a Base64 string to a UTF-8 string. 234 | * @param {String} src Base64 string. Both normal and URL-safe are supported 235 | * @returns {string} UTF-8 string 236 | */ 237 | const decode = (src) => _decode(_unURI(src)); 238 | /** 239 | * check if a value is a valid Base64 string 240 | * @param {String} src a value to check 241 | */ 242 | const isValid = (src) => { 243 | if (typeof src !== 'string') 244 | return false; 245 | const s = src.replace(/\s+/g, '').replace(/=+$/, ''); 246 | return !/[^\s0-9a-zA-Z\+/]/.test(s) || !/[^\s0-9a-zA-Z\-_]/.test(s); 247 | }; 248 | // 249 | const _noEnum = (v) => { 250 | return { 251 | value: v, enumerable: false, writable: true, configurable: true 252 | }; 253 | }; 254 | /** 255 | * extend String.prototype with relevant methods 256 | */ 257 | const extendString = function () { 258 | const _add = (name, body) => Object.defineProperty(String.prototype, name, _noEnum(body)); 259 | _add('fromBase64', function () { 260 | return decode(this); 261 | }); 262 | _add('toBase64', function (urlsafe) { 263 | return encode(this, urlsafe); 264 | }); 265 | _add('toBase64URI', function () { 266 | return encode(this, true); 267 | }); 268 | _add('toBase64URL', function () { 269 | return encode(this, true); 270 | }); 271 | _add('toUint8Array', function () { 272 | return toUint8Array(this); 273 | }); 274 | }; 275 | /** 276 | * extend Uint8Array.prototype with relevant methods 277 | */ 278 | const extendUint8Array = function () { 279 | const _add = (name, body) => Object.defineProperty(Uint8Array.prototype, name, _noEnum(body)); 280 | _add('toBase64', function (urlsafe) { 281 | return fromUint8Array(this, urlsafe); 282 | }); 283 | _add('toBase64URI', function () { 284 | return fromUint8Array(this, true); 285 | }); 286 | _add('toBase64URL', function () { 287 | return fromUint8Array(this, true); 288 | }); 289 | }; 290 | /** 291 | * extend Builtin prototypes with relevant methods 292 | */ 293 | const extendBuiltins = () => { 294 | extendString(); 295 | extendUint8Array(); 296 | }; 297 | const gBase64 = { 298 | version: version, 299 | VERSION: VERSION, 300 | atob: _atob, 301 | atobPolyfill: atobPolyfill, 302 | btoa: _btoa, 303 | btoaPolyfill: btoaPolyfill, 304 | fromBase64: decode, 305 | toBase64: encode, 306 | encode: encode, 307 | encodeURI: encodeURI, 308 | encodeURL: encodeURI, 309 | utob: utob, 310 | btou: btou, 311 | decode: decode, 312 | isValid: isValid, 313 | fromUint8Array: fromUint8Array, 314 | toUint8Array: toUint8Array, 315 | extendString: extendString, 316 | extendUint8Array: extendUint8Array, 317 | extendBuiltins: extendBuiltins, 318 | }; 319 | 320 | // 321 | // export Base64 to the namespace 322 | // 323 | // ES5 is yet to have Object.assign() that may make transpilers unhappy. 324 | // gBase64.Base64 = Object.assign({}, gBase64); 325 | gBase64.Base64 = {}; 326 | Object.keys(gBase64).forEach(k => gBase64.Base64[k] = gBase64[k]); 327 | return gBase64; 328 | })); 329 | 330 | 331 | function getEncryption(val) { 332 | var arr = []; 333 | for (var i = 0; i < val.length; i++) { 334 | arr.push(val.charAt(i)); 335 | if (i % 2) { 336 | var num1 = Math.floor(10 * Math.random()); 337 | arr.push(num1); 338 | var num2 = Math.floor(10 * Math.random()); 339 | arr.push(num2); 340 | var num3 = Math.floor(10 * Math.random()); 341 | arr.push(num3) 342 | } 343 | } 344 | return arr.join(""); 345 | } -------------------------------------------------------------------------------- /yuanrenxue/4/4.py: -------------------------------------------------------------------------------- 1 | # coding=utf-8 2 | import base64 3 | import hashlib 4 | import re 5 | import gzip 6 | import requests 7 | from decimal import Decimal 8 | 9 | image_dict = { 10 | 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAdCAYAAACqhkzFAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAMTSURBVEhLrZY/TBNRHMe/bY82LeGA0Dp4NTGYqO1gdKEMwmQcGh38M5CQlGDSwWiMAwwYg2iCJsZJQ9CJ0ETsQMJgwuagLIUFXIAFXNoYcqDloLRXrq3v7v3aXktbSPCTXO77fZRvf/feu9+r5dz5iwX8R+oESigMPka6/wb2vSJUBx+1QoVD3kTz7DScb+f4YBVHA6U+ZKLPsON1IE9DtbDLP9AxEIawRgOEle4cKYSD+ZeQq8IcKquMXTbyOllPL7aiEWgSDRCmQAnahyHsiGQZruUvkIKXcObyFeM62zcOd1ylvwJ5MYDkuxA5Tjlw8A2S12iyGM7YODrujsFqfqTFCJw9L+CWyTPS3QPIBMgwKFBC9n4AaW4AdQVtQxEy1czBObkIJznAi9TDO6SLgVIYqt9QBq5YFEKCTC2momg2VXngD5bmnAc+uIqUIXQUOL/X3hJl5mHfUEgzPJ04pMUxAnN+CYeG1UlAmCLZANtqAk2kARG5m1zxQI9paWUZAsmGsArLnxOh0ZSxwCBypjwo2zQPxzCTgJ2kTtbbZ9zZ/7pRKO8WOOWqrX9iePyJiqnNGgTTuhRhgT5o5kc+JaeosDYssHbpx+OtXEziSIWqx0fqOFpg7ns2Zd24s8B1WE0V5h2mJW/ELTc0kjo2Zcm4s8ClikCIlR+si59tZpL66yosc2U8clM8bhgDkfVFUzuqR569rqXOqG7CPsOlEWiJJSraUaa/i3Q9upC94CHNCtr4WXoN+aJMzcFlakd73eGG5wnuhZHykmZ1tnx9TboYqDfNWLxoWDvqhfK+h0w1Pcg87cUBOavMmu1HMoxShuXJNNpNi7N3ewLJTyEUzIdQIIT0wgQ7EcmzxWifZMcEOZ3KY3Qwgp3RQOnbOfqJx5XGtlSOS4aK1tlHEIcXyHNsrW0dY6SBFX0ufShc70S21OwE5AR+lb+ZVfb5OVpGviGTTkHeSmBfScJqtdX55SAFoY0OsMXxISM6SvvNrshwrS7A9WoENupyv+O/oGm831sslno/RU6OsvsHu3+3yQH/AOyW6SvqnweCAAAAAElFTkSuQmCC': 0, 11 | 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAdCAYAAABFRCf7AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAANLSURBVEhLrZZNSFRRFMf/48e8UZtRktFkRsiEdCIKVwaikrlJbZG0MEGDwEWUIPaBQoiIZIJGG4mikoyyIBJKW4gbs4W66WOhtlAXzixq/HzGjG/8eN0378yb+5w3qdAPLnPOmXf/nHfvOfc+U+bR4zL+M/sTrW6F71Ih/CfskAQB2xQ2SyLMU5OwPr+HuEEPRfcSddXB96QeK04BOxQyZg7pWedhJi+GfiOp7sHqwC0s7RKMkyQIwaGfzGdmLFrUAbGlFOsC+ZBwaLwfjqoSZOSeQlpw5MBR1oQjw3NIoKdCGLz+Rfgn72PRTq7khr2tFpbX4TWLwJULTM+QY5Cp/PgGlkOCEJHauYegAieosEuUbUyxU1tDy9c3SOzdQ9AAvWh7ObeOblg7u8k+GJyoA4E8FzbJi5mdhGWCnAPCiVZhM5tMRuLsAFkHJyxakcu6hWy2QcL4pGpW3IR/6AsWZ35iYV4dnvkfWBp7C/+dMvWZ3SglFRzPpuR4WZYRHAtyWsFZ2fFhVha0mPEQFkbljALSoBHO1G7V1hMIQG54Cu+FY6zsVcyhTiI/hOQswq9PfdhyUIChiW7bbWQpOLDOBANMMknppLIcpIc6KasEzrYhJIv0KGPHlo/VrlrydBvFI2CDNXfyu+s4fLkVMdMUDuKBqbcRtvr3SA69BsN/phIByjaKKPvDPQLr7THyDPjcDOuwmxNwYaNBtaKKWse7YSI7GqbO70giWyHgVJdAE431covESipuah/t6fkGMzdNsruCv+FMveuIJzMavpMlEItryIskdGaERYc9XLnYsO0kk2Mr1YG1c3XkRZLgVXc0LDoxAYF7lY28yMm20ZfIbCkij5GfD4mrxFhRPQK5jepjR52XbEW0XCuRaOxcO40/ZLP1g+Wj2tqcKHMesZuRbKVEVl506O4eHRU9WCvWTnPEz47BMqjaOlFMNLJSErVgILsSiyMPsJ3Pp5yLnfY+LHeVclm6kdLWrJWgwR1VCGmkB7+z9V2u9H5wErv3uUZiiEh5xZK5G24UfaZBxiBcaUL6lIhYiigEFLFdgjHsUkztrNEJKvz7Y6K6A76rhfA5lS+TUB1KrHQ8SBztR8LDPpgMemR/nz0HAvgL80YzEyuMQpQAAAAASUVORK5CYII=': 6, 12 | 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAdCAYAAACqhkzFAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAANtSURBVEhLrZXfS1NhGMe/rumZbR4nOcO2IA1CvQi8UW8y8EJqZCR1IQiKwvRCuiqTfomtkkrqIpN+EFSGNaFECL0IbzQvnH/A6EavNiinJVubO/5a73nPs51zNqf04wPjfJ8X9uV5n/d93ifr8JFjcfxHMhueuYS1dieiFTZIgoAtvihBCAVhnptErvshDAG+qGMHwzJsvh7Cj5MO9vfMGCQ/Ckb6sP/2F1pRMNCXsGPz/Vt8TzEzSiwz/qMFxrbgwEr7I0Tb7LSioDe8OYSVGhHbFOYEZ1DcVIfisuMo4r86ONxTyEsai1jpGcK6xlNj6MRaQznWKTL4p1BU5YLRqy1UAFmvumDtGEN+wlQoR7SnigKd4Qls2EiyDVs/dSGLojRmrsIyF6QAiFQ0ktIaslokspMzMT4gmQFDMEyK1ZO+MqqhL4x9JFn1EK8m+Yeohl4vu2Ok4UCsWa1LOmw3FaWkAbNfvTqaGg4jd86fXAjX34JUS0EK8YGX+FlBARZhfjpJWmfIbnlnHwoX6PiEUiy9mEVkwIV4ubKEWheksVksXSilekvI/9APwcsDTnqn2JsQ81zDikPQFTsdCXmf+2Ht9FCsoMuQE/DAdHkQBeqt2BHz9CDy3XozmZQM7dh+Pozlen3rGViUzRa22COxSWsycj8fcLfA9E69/JoM5T4exTeNWe7CBA6x1rOXKK1XXCK33gSsdBvkfg7eHdX1s5phG8ustxprPJCL3QWxW/+SJLE7Ib25h6WjghKHvCh2tsDIEqUMqxBrT5ixa+3zZDaTCUxCaPXAmtiKWI1f1M+KYXUr1hxcMSRYpvtJ70KgH7k+tdLhGhe/FYphvV1zCHv3cQLjguYlsjn4gSmGooANLv4N+TAUw2AIVF5GIbbaSO7BlqOQFEMK8cdFMRxZhIkLGRGRBhfp3XAhVimSZkbBgMYw8AQmH1ecWGVH2qzQEo3kYfVUGKvqtpA35+EPsmLIDiLn/hQsSsBgs6J3HKHHLYin+p5n47XtLMLP3MleN7DZY+me51rXevE741huLkeM4gQ5bOIp40BgM5qLJAZpEYUdpyHMUKx8FLJunIPtutpaCdZZD8vDPtXM5J/BwUbVTGaHQS9Thu0rF9kUrELEJmKDGSW2J7DTzPbNwzIyiOyPX2lVJYPh3wL8BvLZG6cpuRANAAAAAElFTkSuQmCC': 8, 13 | 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAcCAYAAACOGPReAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAD0SURBVEhLY5RVUPvPQGXABKUJAA2GvzP3Mry6f5PhzfI4qBhuQNjQqD6Gzxc3Mjxzk2H4CRUiBHAYKs3wP7Gd4evhSwzPWr0ZPvBBhYkEqIaaBzL8nrmS4f3FfQzP6oIY3smwM/yFSpECkAyNY/g2q4PhhZsBwxegy/5BRZlfP2HgIdbfUIAnTD8xCGyuZ5AyW8jATqmhzD9fMwjumsUgbWPKwJu3AipKGkAydC8DZ24sg5SGDQNPei8D01OoMBkAydCnDIyHTkHZlAE8YUo+GDWU+mAEGfq46RCUhQAUGypbZwdlIcBoRFEfjBpKfUADQxkYAKYHOb9g+7HMAAAAAElFTkSuQmCC': 1, 14 | 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAcCAYAAABh2p9gAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAMzSURBVEhLpZZPSBRhGMYfV9dpdV3UHDVXIw1KDUwJVy/VLTAVWugQRJqUpxAkFyuMIBMPWRGYiCGGC7J0KCRKL13Si9pBvKiH9NIYoavgqKvjujt9M/OuM+uustUPvpn3edl9eL/3+7Mbl3fqjIxoFDnhb76Bzcoi7No47FI6QRJxbHYKKQOdSPi8RFmdKIZ2BDt6sHazCNuUiY4E67cXSLvtJq1hojdhx57nPX4fMDOxL3OSMiihwmHzchu8njrSGmGGclc/Vit5BEibxEXw7bdgzy9BZqEyziLP5UH6Cn2AsV3ZBF+DnVTYlBuxNe/CGqcpSHPIdl6DeY60EXsdfCNtWLVp0rQyhhOORrU6vcKOamyEzNgUU4fuRTdTWHIj6fUkLCSDfCl2GrR433CvuAB+ipXqLM8iVzCMd29gFSiGDb4rWi/J0IE9fr88QFhEAoWHMwWzIFLMeplbAaV3ZFiIIPXjb4gXvBQx+Ax1MfUeGuEM1cYKZzMauhFv2Arg2X6k8CgCuRkUKaQgWGOo0CwYHLlS+LocJA7B3oKdMmOfOMi8wdDUy84nxQrrtU8h1egbNpyLkAbr9T1rQO/h5EtYJ0Q9wRVguXsYG30tCFwq1HJ2B4KtPdiY6cfyac3NrD4VJMQpk1ROij7uyJk/dmTIcgxjXT7+aUK27OsFOZN56BWqjIOrf4isWRHxlImOiLSh+0iaJqnCKmTPA4aMpREkVpcjx/UWGdOLSBZDNw0booC0iY/IuVoO6+NxoJjXbyVRK+LwCzYGAp7v+FWprbR5dhDZ1Z1RKowZB/y5+rbhhK/qO2bD/FMncb7kHClGRT07vxRDgGVgSo1iNrTZUnChrIQUm26zA5sUm4QZcJNa/G89bHDD+6SCFkRCem8Vkp9r1114hfbDToaBmlcQH4TMgMSFL0giM4Vww2Z2AqaGsd3qpIQB5We1bxTe7mqsh46ctIjU9kfq/gsRPuWuUfy8XkCCrRzbexTBz0yCpBRMzCzDdRfcgd/mIxdFYveiNsLNOGEMWc6qCDOFA4vCbu7WJmzXOrDF21SjEBz7x2Bm/xisQ90wf5inbCT/dVIiAf4ApbEnkB6qHqsAAAAASUVORK5CYII=': 9, 15 | 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAbCAYAAACTHcTmAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAHHSURBVEhLrZW9LwNhHMe/WrT10mrKVE2EROIfUAuTTQxMLISBQSxeIjQSTZRIsYgYhYVRIrWzaCxiMjFVoqjWaatPaR9Pe09bbfT6XHKf5Mn9vne9T+55fs/1qhxtnRRqWD1DcLILSR5Nfg+aR495ktHxoyBDiA8WhOVQJaXeKUgtPCggLrXPs6dsxzePSghLU9sjiBh4qICYtG8fUo8Z6UxNXlEvZc+WRUDaC+LpR5SnhssLGHldjopS6l1BpFWuda9XsEwH5KCAstS5iU/WHHkLSbAerAmtl8JvupH0DOCDN8d4e4q6wyc5VKCslHrdCHdwI7mHZXZHrgX4X9r3d9oElvMN1Io9ZJZ/pL1IeIbz06598KFx8UYOgpRI7fg52UWIdzszbev4Mqp4FKVYOrGJSG6Ts27btmZUTTtHQcrWUVpy4otHk39PuNulyFL7GOJ7hXWsCfhgK/mPVAOTstfwaAEhMz9DHmF1zalexyIcbj81UUqh0TBdr9OS7muDDoRAz4ZBxajmN2dggqJrepKE+g8fWFPvXPkeaPDhE0MzaeIrhpfnAGJRSTvp+1sQJBFHOBTUTppOp7LHzM7STGpusvEK+AUL4d3X/AgqvQAAAABJRU5ErkJggg==': 4, 16 | 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAdCAYAAACqhkzFAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAKCSURBVEhLrZZLaBNRFIb/PDp5SFMxjqVOAjYLNUGUbhI3cdEGwaAgbmopWFIQBEUwFhQVldIqCuqilLoymEVVlCqWuNdVXRk31Y1uTKAQMRI0ycQk453JaWaSJjYPPxjmnJPwcefOuSfROXftlvAfaSAUIIXOITfuR9bBQzQBZfqEEzPgVuPY8uIeuMXPVK2lVnjoCrKzJ5F2mKqSZpi/xGCfCEOfpAKhCkPz+HEpgN9sRVpMoqjcJZMJBSVS0Wfeoz94CkaNVE93wOOqygyZr9i+cBnOwT3YsXe/cvUPDsMxHcPWTOU7MmWbD+m5i5RVUIUKGfQt38DOA0dgufuSauskoYuE0RuchV0jzQ8FIAqUMFShmIB9+jhs559SoQnJKKwLcZgpBVwoTFLIUIXXTsMaqdvhZjz8qBECRYeXog2P3CoJts8UMko2F0UdC90o2ihkcAl1mzoTnnGh0kwyGRhXKWR0IBRQOOZGnjL57RsjFDLaF87MI+1Ru9+ysgSOYpn2hKEovo+71RMjfoJtKkpJhRaFAsozr5C67kOOKvLe2e+cBVfXaZsLhSD+LD3DGluZum8p5RA06tt/C4/exK83D7A2xKNEJT07UfzV0aaHoImQHnFuDGlNv8kja2BkBObF5ieqgdDf8BG3PboAPrBx/tVTN7H9KMTuI+WxVQesIRUHPzWKnndU2ATNCgUUn9TKrB8eY8DbukxGFYZu4+dBVWZZYXPvxC3oKG8VEnqRn1R7rCfBfi/Gahu2VSpC3wRyDiViiOhdDre9snUqwsOCZnqkYHhLYSfIb9n5+psESerq6nvOPMylrLDEa7q3C7L7hrVt0z1Fu9Dor0g3AH8BJlTqZkAngxQAAAAASUVORK5CYII=': 2, 17 | 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAdCAYAAACqhkzFAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAALaSURBVEhLrZVPSBRRHMe/O+rOuuaUyRoyBlGQfw5lh9xTekg8qIdMKSsQFKRAD0WUROhBCIlSBD1YQsJKQSB1iRa8VRf1Up4UQiNcRVw1nXVdx3V3euP+ZnZmR9EVP/CY3/vx5sPMe+/3nu3suYsKjhGrUCxB5GErNssKERIEyDzlIYOX/MgY+4r0zm5w85ROwCRU2j1Yu+fGhi7ZG072Iau3Bc6BacrE4ejJ6EKgySyzy+yrdptpIKJ8HlbahrHZKFImjnEcIeHU6FuIlfk4U3AJObstH2L9C7hmJKTQKEBg0h7sUE/DJLT5x5FbeRWZ99kcTVFSY9wDR/kN5Pxkn6vBFyPUTjFhEPYjs6YBqYkiE/NIfTeODOqpyEUNFMUwCNmy7bNyJr5M787pfuwxhwfhh+1YhWIxtgWKGXafh6IYSQuVjssIUgxMwdFLIZGc8IEHKxV5iFL3xGg37AnzfnAtu68jUlYFueIa1i4IiFDaOfYa2XcGqRfHKnzlxVzdeepYSZVmkfXyERwfrGWnktQvc7If6T62yrxhVRKwCvX6jTet3KK8C4EiN5Y6hrEw6YV811rLhzwPRSi19dhqqmFCFzvINPzI7rwN51B8ZQ4pNNA4iNW2UgTpVOL835Fb0qz/atL7EEPNyPrm01+MutwIPaUOI3khw9Y5aTggeISu1FN8RCHm5YQX7fQ8qlDk9WpR4eRlinQhW37rDtgXpc1Yz2xrsYtLg4StCHz+iHD1IazVPQgY6hnSLzgGKGbov6y4irHY58W/T13YKS2grIHCGoTfeLHcV4V1w9V6+v0zwz2j78MuSH9uYp2SKhwbnKbvYB5hJjHOmyo7OdIC4ckP6segL5wAb7rR1Jd5dslrzSxLYQeE6/ktXbYVCmJp0YfghpRQKbWPsVVXjs0iEWGBxzalVXhZQtrMFJwj/eCHJigbY2FuFpFI7EJNvvT2wPf3NxRF1QD/AbAv8WdRHzjKAAAAAElFTkSuQmCC': 3, 18 | 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAHhSURBVEhLrZY9LANhGMf/PprDVQkxyFXSVCKIwYStiZoqhoqEhTCQWCwiBBEDiUTMBpOJhKQDkw1L1YDFxoSlBi2tlurrrn2uH9xX2/sll/6f4X557n3e903LWhxtDCZSTr/mIXXY4thgjSHGwEp76o7amOkdmih8BHcMlDAULz4DW3htSlf8+RIaJn3Fd8i2ZxAiGeK3sK34UrE4oTCP6JAT31TWneyg8jmdixKyNQ/eOCqCF7AuBKgoRigs48NlR5LK+rP1PEnBwuRmfnf8Kn0rUZhQWEfEJU/if3cSBQmTmwN4o6zUnYRxobh2kb5sd7X+PcWXDQvZohthee3EfWedy042F4PCCXzmTLbGf4hKyn8xJtwYRthGGU/gd9OnQgkDwh7EXB2ZU2G5v0TVFRUK6At7xxCzUxbhb/YoKaMrTM724J2yNIxqha2Si47Qi1hndqtw9wHFYUS7+hF2jaeytnDKi2jGFwfv36GcT6JRQMg9ncqaF+zPwTVe+mi84uc2t4+qbhcZjQ49+GrN7BVYHu50ZRLqwt5BxLLLh6qHfUraqAtHnIhSFG8CcGfa05VRFSZahcxRQ/wZllPKOqgIPfi2yzeBSPAVFRT1UBF2I5GzflzwEWWU9TD5zxLwC1sVsHrJiVs0AAAAAElFTkSuQmCC': 7, 19 | 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAcCAYAAACOGPReAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAIxSURBVEhLrZU/aBNRHMe/bWKexnoiaSg0FSSCaAfFwT+L7dKloUs7OqRVcHBwcZOCiCAOhk4dxAwdHFRwEEoRSjvoZNqhdDE4tC7aIYmWvOiV1941vnf51dy7S0ou6Qfu+P5+B9/7/e7e+72us+cuVHHE+EzF0jcUzlPQCjyH/itphChUdKub+bcCXv4tVQr7hsp0hmNqWXsob5ek6kWVqUxneNpPw1yfxi+nWo7Y02uIzjkPAuFUWucSrKNqvzEcoUWSAdFNbyewSxJK/SQZEN1U+0kCXaSCopvGGfZJgsv2SQbFY2rI+jqn+Y/ipbYr1dap/WYVWzfra0q98f/nkDDBcWwjj+j7WbC5Fcr6aV6pxG2oEMzAn8EbKDx+ja31jxBytTRCM7WNepVhIWRl6qKEB9tIovDsA8w7fuPWR9/QPezenQAfTmKHUg5iE32To4jkKJYc2r7G5ywiU6PoTWUQK7rKZ0lU7o9TUKN10wPyWUQfLOA0hQrz6jhs0orgporcI0TXXNUacVgkFe2ZSsI/iqT8tG162DBv23RvYICURG4K3xkVmKEZmIOkJWqXhUkrgpsm0tjJjKBCoRqRp+afkK7hMr2I6tgt0g1IXIf94h22l6dRkiPygMjXtzj5kgLCtaOeg3+fQNnR/u1pMaatRUVkYwHxyYfo9pwQTdpncnjol24o0PMpg74Rv6HCZbqC41/y6OG1QeKdpSGZO1HcRGz+FRKpyzgzlaUnXoB/3J2gmVZucHAAAAAASUVORK5CYII=': 5 20 | } 21 | 22 | answer_num_list = [] 23 | 24 | 25 | def get_base64_data(page_num): 26 | url = 'http://match.yuanrenxue.com/api/match/4?page={}'.format(page_num) 27 | headers = { 28 | 'Host': 'match.yuanrenxue.com', 29 | 'Pragma': 'no-cache', 30 | 'Referer': 'http://match.yuanrenxue.com/match/4', 31 | 'User-Agent': 'yuanrenxue.project', 32 | 'X-Requested-With': 'XMLHttpRequest' 33 | } 34 | res = requests.get(url=url, headers=headers) 35 | # print(res.text) 36 | return res.json()['info'], res.json()['key'], res.json()['value'] 37 | 38 | 39 | def b642jpg(b64str, name): 40 | data = base64.b64decode(b64str) 41 | with open('{}.jpg'.format(name), 'wb') as f: 42 | f.write(data) 43 | print('打印完毕') 44 | 45 | 46 | # var j_key = '.' + hex_md5(btoa(data.key + data.value).replace(/=/g, '')); 47 | # 利用key和value计算出属性为display=none的md5索引值 48 | def get_j_key(key, value): 49 | return hashlib.md5(base64.b64encode((key + value).encode()).replace(b'=', b'')).hexdigest() 50 | 51 | 52 | # 获取td中4个图片 53 | def parse_every_group_nums(info_data): 54 | pattern = re.compile(r'