python3-今日头条头条登入加密破解

python学习网 2020-10-19 13:55:02

仅供学习

一.登入入口的url

https://sso.toutiao.com/account_login/v2/

二.需要破解的提交参数

account
password
fp(后续验证发现他不做校验)

三.找到登入加密的js(在第二层)

function a(e) {
                    var t, r = [];
                    if (void 0 === e)
                        return "";
                    t = function(e) {
                        for (var t, r = e.toString(), n = [], i = 0; i < r.length; i++)
                            0 <= (t = r.charCodeAt(i)) && t <= 127 ? n.push(t) : 128 <= t && t <= 2047 ? (n.push(192 | 31 & t >> 6),
                            n.push(128 | 63 & t)) : (2048 <= t && t <= 55295 || 57344 <= t && t <= 65535) && (n.push(224 | 15 & t >> 12),
                            n.push(128 | 63 & t >> 6),
                            n.push(128 | 63 & t));
                        for (var a = 0; a < n.length; a++)
                            n[a] &= 255;
                        return n
                    }(e);
                    for (var n = 0, i = t.length; n < i; ++n)
                        r.push((5 ^ t[n]).toString(16));
                    return r.join("")
                }

四.翻译js为python

def jing_ri_tou_tiao_encrype(data):
    ls = list(data.encode('utf8'))
    new_list = []
    [new_list.append(str(hex(5 ^ls[index]).replace('0x',''))) for index in range(len(data))]
    data = ''.join(new_list)
    return data

五.完善代码

import requests


def jing_ri_tou_tiao_encrype(data):
    ls = list(data.encode('utf8'))
    new_list = []
    [new_list.append(str(hex(5 ^ ls[index]).replace('0x', ''))) for index in range(len(data))]
    data = ''.join(new_list)
    return data


account = jing_ri_tou_tiao_encrype('+86手机号')
password = jing_ri_tou_tiao_encrype('密码')

url = 'https://sso.toutiao.com/account_login/v2/'
data = {
    'aid': '1231',
    'service': 'https://mp.toutiao.com/',
    'account_sdk_source': 'sso',
    'mix_mode': '1',
    # 'fp': 'verify_kg910vw9_W2a6NlcX_GN0g_4WbF_8FAj_ovWxG4zUiTK2',
    'account': account,
    'password': password,
}
headers = {
    'Referer': 'https://mp.toutiao.com/auth/page/login/?redirect_url=JTJG',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36'
}
res = requests.post(url, data=data, headers=headers)
print(res.json())

阅读(2447) 评论(0)