From 20684781afc9be44b76e9358e9910a9601d7d8ac Mon Sep 17 00:00:00 2001 From: luzhisheng Date: Fri, 24 Feb 2023 18:13:00 +0800 Subject: [PATCH] =?UTF-8?q?13css=E5=8A=A0=E5=AF=86=E5=8A=A8=E6=80=81css?= =?UTF-8?q?=E5=AD=97=E4=BD=93=E5=8A=A0=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 猿人学练习/13css加密动态css字体加密/main.py | 59 +++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 猿人学练习/13css加密动态css字体加密/main.py diff --git a/猿人学练习/13css加密动态css字体加密/main.py b/猿人学练习/13css加密动态css字体加密/main.py new file mode 100644 index 0000000..8710355 --- /dev/null +++ b/猿人学练习/13css加密动态css字体加密/main.py @@ -0,0 +1,59 @@ +from fontTools.ttLib import TTFont +import requests +import json + + +def font_value(key): + font = TTFont('./docs/aiding.woff') + font.saveXML('./docs/movie.xml') + font_dict = {} + i = 1 + for font_u_nie in font.getGlyphOrder()[1:]: + font_dict[font_u_nie] = i + i += 1 + font_dict['unif712'] = 0 + return font_dict[key] + + +def get_ttf(woff): + ttf_name = 'aiding' + url = "data:font/truetype;charset=utf-8;base64," + woff + session = requests.session() + response = session.request("GET", url) + with open('./docs/aiding.woff', "wb") as code: + code.write(response.content) + return ttf_name + + +def challenge13(page): + url = "https://www.python-spider.com/api/challenge13" + payload = f"page={page}" + session = requests.session() + headers = { + 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8' + } + session.headers = headers + response = session.request("POST", url, data=payload) + return response.json() + + +def run(): + data_num = 0 + for page in range(1, 101): + response_json = challenge13(page) + data_list = response_json.get('data') + woff = response_json.get('woff') + get_ttf(woff) + for data in data_list: + data_value_list = data.get('value').split(' ')[:-1] + data_num_join = '' + for data_value in data_value_list: + data_value_num = font_value(data_value.replace('&#x', 'uni')) + data_num_join += str(data_value_num) + data_num += int(data_num_join) + exit() + print(data_num) + + +if __name__ == '__main__': + run()