mirror of
https://github.com/luzhisheng/js_reverse.git
synced 2025-04-20 03:59:57 +08:00
57js加密AES返回数据加密第三弹
This commit is contained in:
parent
58854c6321
commit
09d854f001
23
猿人学练习/57js加密AES返回数据加密第三弹/aes-test.js
Normal file
23
猿人学练习/57js加密AES返回数据加密第三弹/aes-test.js
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
const CryptoJS = require("crypto-js");
|
||||||
|
let secret_value = 'gRBuPrLd';
|
||||||
|
|
||||||
|
let secret = CryptoJS.enc.Utf8.parse(secret_value);
|
||||||
|
|
||||||
|
// 将加密结果转换为字符串
|
||||||
|
encrypted = "dQhIGlAcTdnWU456K3rsppWw0VNONWNuZC3Vm5+lvF8MGUUiQvGHMX6cRwlIgWM9K1Y+RU/AE9ZSin7zATIVEJK8A7spmboKSEA3833MZUOC/H+XmhrTVdwHDKpFhRlcUgaOTOqPql1X0im5TApZNgZDV0ZK3wT/FUxT9GGMT1545vFA0VmqQENhq94DtNiTivJP755tmpEjGCNMOCsPlC9LK51s4lEDBWVppHoUq1VolAhMmJH8+TKXTHbFXYbb1SVBIx2KNyPREP2/oeBv4KWXNiUUjseJK1Y+RU/AE9aoSPRsedoeBJK8A7spmboKOddnNI53/c5r+lQbS7KxsQ==";
|
||||||
|
|
||||||
|
// 解密,传入密文,密钥盒向量设置加密与填充模式
|
||||||
|
let decrypted = CryptoJS.AES.decrypt(encrypted, secret, {
|
||||||
|
// mode 支持 CBC, CFB,CTB,ECB,OFB,OFB, 默认CBC
|
||||||
|
mode: CryptoJS.mode.ECB,
|
||||||
|
// NoPadding, zeropadding 默认Pkcs7 即 pkcs5
|
||||||
|
padding: CryptoJS.pad.Pkcs7
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(secret);
|
||||||
|
console.log(decrypted);
|
||||||
|
|
||||||
|
// 将解密结果转换为utf8字符串
|
||||||
|
d = CryptoJS.enc.Utf8.stringify(decrypted);
|
||||||
|
|
||||||
|
console.log(d);
|
26
猿人学练习/57js加密AES返回数据加密第三弹/aes_encrypt.py
Normal file
26
猿人学练习/57js加密AES返回数据加密第三弹/aes_encrypt.py
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
import base64
|
||||||
|
from Crypto.Cipher import AES
|
||||||
|
|
||||||
|
|
||||||
|
# AES
|
||||||
|
# 需要补位,str不是16的倍数那就补足为16的倍数
|
||||||
|
def add_to_16(value):
|
||||||
|
while len(value) % 16 != 0:
|
||||||
|
value += '\0'
|
||||||
|
return str.encode(value) # 返回bytes
|
||||||
|
|
||||||
|
|
||||||
|
# 加密方法
|
||||||
|
def encrypt(key, text):
|
||||||
|
aes = AES.new(add_to_16(key), AES.MODE_ECB) # 初始化加密器
|
||||||
|
encrypt_aes = aes.encrypt(add_to_16(text)) # 先进行aes加密
|
||||||
|
encrypted_text = str(base64.encodebytes(encrypt_aes), encoding='utf-8')
|
||||||
|
return encrypted_text
|
||||||
|
|
||||||
|
|
||||||
|
# 解密方法
|
||||||
|
def decrypt(key, text):
|
||||||
|
aes = AES.new(add_to_16(key), AES.MODE_ECB) # 初始化加密器
|
||||||
|
base64_decrypted = base64.decodebytes(text.encode(encoding='utf-8'))
|
||||||
|
decrypted_text = str(aes.decrypt(base64_decrypted), encoding='utf-8').replace('\0', '') # 执行解密密并转码返回str
|
||||||
|
return decrypted_text
|
@ -1,19 +1,5 @@
|
|||||||
import json
|
|
||||||
import requests
|
import requests
|
||||||
import base64
|
from aes_encrypt import decrypt
|
||||||
from Crypto.Cipher import AES
|
|
||||||
|
|
||||||
|
|
||||||
def decrypt_aes(key, data):
|
|
||||||
"""AES解密"""
|
|
||||||
print(key)
|
|
||||||
print(data)
|
|
||||||
real_data = base64.b64decode(data)
|
|
||||||
my_aes = AES.new(str(key).encode('utf-8'), AES.MODE_ECB)
|
|
||||||
decrypt_data = my_aes.decrypt(real_data)
|
|
||||||
decrypt_data_str = str(decrypt_data, 'utf-8').replace('\\r', '').replace('', '').replace('', '')\
|
|
||||||
.replace('', '').replace('', '')
|
|
||||||
return json.loads(decrypt_data_str)
|
|
||||||
|
|
||||||
|
|
||||||
def challenge57(page):
|
def challenge57(page):
|
||||||
@ -25,18 +11,19 @@ def challenge57(page):
|
|||||||
}
|
}
|
||||||
session.headers = headers
|
session.headers = headers
|
||||||
response = session.request("POST", url, data=payload)
|
response = session.request("POST", url, data=payload)
|
||||||
print(response.text)
|
return response.json()
|
||||||
return response.text
|
|
||||||
|
|
||||||
|
|
||||||
def run():
|
def run():
|
||||||
data_num = 0
|
data_num = 0
|
||||||
for page in range(1, 101):
|
for page in range(1, 101):
|
||||||
response_text = challenge57(page)
|
response_json = challenge57(page)
|
||||||
result = json.loads(response_text).get('result')
|
print(response_json)
|
||||||
|
result = response_json.get('result')
|
||||||
key = result[0:8]
|
key = result[0:8]
|
||||||
data = result[8:]
|
data = result[8:]
|
||||||
decrypt_data_dict = decrypt_aes(key, data)
|
|
||||||
|
decrypt_data_dict = decrypt(key, data)
|
||||||
data_list = decrypt_data_dict.get('data')
|
data_list = decrypt_data_dict.get('data')
|
||||||
print(data_list)
|
print(data_list)
|
||||||
for data in data_list:
|
for data in data_list:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user