1. 程式人生 > >記第一個js加密登入

記第一個js加密登入

最近在研究js加密登入的問題,使用python的第三方庫execjs進行js的載入,進行密碼的載入的演算法的載入。具體過程如下

登入的網站是粉筆題庫

使用谷歌的抓包工具f12進行請求追蹤登入頁面的抓包的結果如下

我們可以看到登入的請求只有一個就是loginV2,這個請求是post請求,打卡這個請求 可以看到密碼password的引數是加密的

這個密碼熟悉的人 都知道是一種動態加密 ,你完全可以直接複製,然後去登入,當你需要大批量的登入或者在某些引數加密而且,不同的頁面的加密結果不同的時候 你就需要進行加密的破解,這時候需要你去進行js的破解。加密的過程不進行詳細解釋 程式碼見。

import execjs
import requests

def get_js(password):
    f = open('fenbi.js','r',encoding='utf-8')
    line = f.readline()
    html_str = ''
    while line:
        html_str = html_str + line
        line = f.readline()
    cts = execjs.compile(html_str)
    password = cts.call('getpwdnum', password)
    return password

def login(password):
    url = 'http://fenbi.com/web/users/loginV2'
    data={
        'password':get_js(password),
        'persistent': 'true',
        'phone': '1111111111',
    }
    headers = {
        'Referer': 'http://fenbi.com/web/',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36',
    }
    s = requests.Session()
    r = s.post(url=url,headers=headers,data=data)
    print(r.text)

password = '1111111111'
login(password)