找到post 請求的 url 進行 XHR 斷點
沒找到需要的內容,點擊右側的堆棧看看
然後在進行打斷點
JavaScript加密庫Crypto-JS的使用集成了很多加密解密算法
https://github.com/brix/crypto-js 進行下載
目錄結構
然後用 execjs 進行調用 實現
import requests
import execjs
ctx = execjs.compile(open('test.js','rb').read())
ppp = ctx.call('jm_js','賬號','密碼')
print(ppp)
h = {
"Accept": "application/json, text/plain, */*",
"Authorization": ppp[1],
"Content-Type": "application/json",
"Origin": "https://www.jidaihome.com",
"Referer": "https://www.jidaihome.com/officer/",
"Sec-Fetch-Mode": "cors",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36",
}
html = requests.post(url='https://api.srv.jidaihome.com/officer/v1/user/login',headers=h,data=ppp[0])
print(html.text)
var CryptoJS = require("./crypto-js/crypto-js");
function jm_js(phone,passwd) {
randomKey = function (t) {
for (var e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", r = 0, i = ""; r < t;) {
var n = Math.floor(Math.random() * e.length);
i += e.charAt(n),
r++
}
return i
};
ddd = {
mobile: phone,
password: CryptoJS.MD5(passwd).toString()
};
// 隨機16 個字符
r = randomKey(16);
r1 = CryptoJS.enc.Utf8.parse(r);
n1 = CryptoJS.enc.Utf8.parse(JSON.stringify(ddd));
iv1 = CryptoJS.enc.Utf8.parse('0102030405060708');
jm = CryptoJS.AES.encrypt(n1, r1, {
iv: iv1,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
}).toString();
wordArray = CryptoJS.enc.Utf8.parse(r);
vvv = CryptoJS.enc.Base64.stringify(wordArray);
return [jm,vvv];
}
我這邊還有一個 報錯的坑 不知道 別的環境有沒有
找到那個 文件 修改一下