aHR0cCUzQS8vemhpc2h1LmJhaWR1LmNvbS92Mi9tYWluL2luZGV4Lmh0bWwlMjMvdHJlbmQvJTI1RTglMjU4NSUyNUJFJTI1RTglMjVBRSUyNUFGJTNGd29yZHMlM0QlMjVFOCUyNTg1JTI1QkUlMjVFOCUyNUFFJTI1QUY=
暗号化パラメータの暗号化に関する記事をたくさん書きましたが、今日は参考のために戻り値の復号化に関する記事を書きました。
分析する必要のある結果を見てみましょう。ページには時間軸とインデックス値の2つの値があることがわかります。次に、インデックス軸の値を取得します。
簡単な分析の結果、次のリクエストには暗号テキストの形式で返される「データ」値の文字列が含まれていることがわかります。これは暗号化された戻り結果であると大胆に推測します。この「データ」を復号化するには、ページに復号化ロジックが必要です。
暗号化された結果には、 pc
、 all
、 wise
の3つのセグメントがあることがわかります。ここでの復号化ロジックは同じである必要があるため、1つだけ分析する必要があります。
data
、 pc
、 wise
などのキータイムを検索しても、暗号化ロジックが見つからず、 xhr
ブレークポイントを試しましたが、復号化ロジックは見つかりませんでした。
以前に書いた「レアカウデータ」の記事と、以前に書いたいくつかの基本的な記事で述べたアイデアを参照すると、「暗号化と復号化」のキーワードを検索することで見つけることができます。
突然、復号化キーワード「decrypt」があることに気づきました。もう一度やり直してください。
案の定、次の結果が見つかりました
私は追いかけてブレークポイントに到達しました。それは本当に必要なロジックです(すべてのフロントエンドエンジニアがコメントを書けることを願っています)
スタックを介して上位レベルのロジックを見つけて確認することもできます
ロジックは非常に明確です。コピーして、復号化できるかどうかを確認しましょう。
結局のところ、ロジックは非常に単純です
このロジックは、 Python
バージョンにコピーすることもできます
def decrypt_data(password, data):
n =list(password)
i =list(data)
a ={}
result =[]
ln =int(len(n)/2)
start = n[ln:]
end = n[:ln]for j, k inzip(start, end):
a.update({k: j})for j in data:
result.append(a.get(j))return''.join(result)
今日はこれでおしまいです。また会いましょう〜
[ 終了]
Recommended Posts