非常入门级别的,刺猬猫免费章节JS解密
相关章节请求:https://www.ciweimao.com/chapter/ajax_get_session_code
再
https://www.ciweimao.com/chapter/get_book_chapter_detail_info
首先一眼丁真找到js:https://www.ciweimao.com/resources/js/book-read-min.js
简单的aes,写就对了:
移植到python:import requests
import base64
from Crypto.Cipher import AES
headers = {
"referer": "https://www.ciweimao.com/chapter/xxx",
}
def decrypt_content(content, keys, access_key):
t = len(keys)
m = len(access_key)
k = []
k.append(keys[(ord(access_key) % t)])
k.append(keys[(ord(access_key) % t)])
n = content
for i in range(len(k)):
n = base64.b64decode(n)
p = k
j = base64.b64encode(n[:16]).decode('utf-8')
f = base64.b64encode(n).decode('utf-8')
cipher = AES.new(
base64.b64decode(p),
AES.MODE_CBC,
iv=base64.b64decode(j)
)
n = cipher.decrypt(base64.b64decode(f))
if i < len(k) - 1:
n = base64.b64encode(n).decode('utf-8')
n = base64.b64decode(n)
else:
padding_length = n[-1]
n = n[:-padding_length]
return n.decode('utf-8')
def get_chapter_content(chapter_id):
s = requests.Session()
url = "https://www.ciweimao.com/chapter/ajax_get_session_code"
data = {"chapter_id": chapter_id}
try:
response = s.post(url, headers=headers, data=data)
chapter_access_key = response.json()['chapter_access_key']
except Exception as e:
return None
url = "https://www.ciweimao.com/chapter/get_book_chapter_detail_info"
data = {
"chapter_id": chapter_id,
"chapter_access_key": chapter_access_key
}
try:
response = s.post(url, headers=headers, data=data)
print(response.text)
result = response.json()
chapter_content = result['chapter_content']
encryt_keys = result['encryt_keys']
decrypted_content = decrypt_content(chapter_content, encryt_keys, chapter_access_key)
return decrypted_content
except Exception as e:
return None
if __name__ == "__main__":
chapter_id = "111446252"
content = get_chapter_content(chapter_id)
if content:
print("解密成功!")
print(content)
else:
print("获取内容失败")
页:
[1]