fatlong 发表于 2024-1-17 11:43

新手写的一个python脚本,有道翻译,一丢丢js逆向加解密

import base64
import json
import time
import hashlib
from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad
import requests


o = str(int(time.time()*1000))
def sign():
    # e = 'asdjnjfenknafdfsdfsd'
    # u = 'fanyideskweb'
    # d = 'webfanyi'
    q = 'client=fanyideskweb&mysticTime='+str(o)+'&product=webfanyi&key=fsdsogkndfokasodnaso'
    a = hashlib.md5(q.encode()).hexdigest()
    return a


def decrypt( decrypt_str,iv,key):
    key_md5 = hashlib.md5((key).encode('utf-8')).digest()
    iv_md5 = hashlib.md5((iv).encode('utf-8')).digest()
    aes = AES.new(key=key_md5, mode=AES.MODE_CBC, iv=iv_md5)
    code = aes.decrypt(base64.urlsafe_b64decode(decrypt_str))
    return unpad(code, AES.block_size).decode('utf8')


def get_data(q):
    headers = {
      'Host':'dict.youdao.com',
      'Origin':'https://fanyi.youdao.com',
      'Referer':'https://fanyi.youdao.com/',
      "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.61",
      'Cookie':'OUTFOX_SEARCH_USER_ID_NCOO=1918452785.9332309; OUTFOX_SEARCH_USER_ID=714488211@171.221.146.167;'
    }
    url = 'https://dict.youdao.com/webtranslate'
    data = {
      'i': q,
      'from': 'auto',
      'to': '',
      'domain': 0,
      'dictResult': 'true',
      'keyid': 'webfanyi',
      'sign': sign(),
      'client': 'fanyideskweb',
      'product': 'webfanyi',
      'appVersion': '1.0.0',
      'vendor': 'web',
      'pointParam': 'client,mysticTime,product',
      'mysticTime': str(o),
      'keyfrom': 'fanyi.web',
      'mid': 1,
      'screen': 1,
      'model': 1,
      'network': 'wifi',
      'abtest': 0,
      'yduuid': 'abcdefg'
    }
    res = requests.post(url,data=data,headers=headers)
    return res.text


def judge_language(text):
    for char in text:
      # 判断字符的 Unicode 范围
      if '\u4e00' <= char <= '\u9fff':
            return '中文'
      elif '\u0041' <= char <= '\u005a' or '\u0061' <= char <= '\u007a':
            return '英文'
    return '未知'

if __name__ == '__main__':
    print('请输入你需要翻译的字词:')
    q = input('')
    aesIv = "ydsecret://query/iv/C@lZe2YzHtZ2CYgaXKSVfsb7Y4QWHjITPPZ0nQp87fBeJ!Iv6v^6fvi2WN@bYpJ4"
    aesKey = "ydsecret://query/key/B*RGygVywfNBwpmBaZg*WT7SIOUP2T0C9WHMZN39j^DAdaZhAnxvGcCY6VYFwnHl"
    result = decrypt(get_data(q),aesIv,aesKey)
    # dictResult = result['dictResult']
    languge = judge_language(q)
    result = json.loads(result)
    print('翻译后的值为:')
    if languge == '中文':
      tran_value = result['dictResult']['ce']['word']['trs']['#tran']
      print(tran_value)
    else:
      tran_value = result['dictResult']['ec']['word']['trs']['tran']
      print(tran_value)

zhurui 发表于 2024-1-17 13:35

本帖最后由 zhurui 于 2024-1-17 13:37 编辑

建议来用我的接口
谷歌翻译接口API,中英互翻,自动识别多国语言,无请求限制
https://www.52pojie.cn/forum.php?mod=viewthread&tid=1863856&page=1#pid48777636

;www

三滑稽甲苯 发表于 2024-1-17 12:53

用这个接口会不会简单一点 https://www.52pojie.cn/forum.php?mod=viewthread&tid=1869496&page=1#pid48929873

fatlong 发表于 2024-1-17 14:15

zhurui 发表于 2024-1-17 13:35
建议来用我的接口
谷歌翻译接口API,中英互翻,自动识别多国语言,无请求限制
https://www.52pojie.cn/f ...

突然感觉,我更菜了

fatlong 发表于 2024-1-17 14:16

三滑稽甲苯 发表于 2024-1-17 12:53
用这个接口会不会简单一点 https://www.52pojie.cn/forum.php?mod=viewthread&tid=1869496&page=1#pid48929 ...

{:1_937:{:1_937:}{:1_937:}{:1_937:}

liyitong 发表于 2024-1-17 14:38

fatlong 发表于 2024-1-17 14:15
突然感觉,我更菜了

手机端不加密,真有意思——

SHUKANGLE 发表于 2024-1-17 15:55

可以用while Ture 进行循环翻译,然后用try对不能翻译的进行报错拦截

fire9 发表于 2024-3-23 01:47

不错                            ,

金丝大环猪 发表于 2024-4-23 21:54

{:301_997:}不错,不错,赞一个
页: [1]
查看完整版本: 新手写的一个python脚本,有道翻译,一丢丢js逆向加解密