60js加密轻混url加密-AES

This commit is contained in:
luzhisheng 2023-02-10 15:29:47 +08:00
parent ef79965888
commit 58854c6321
3 changed files with 84 additions and 0 deletions

View File

@ -0,0 +1,23 @@
const CryptoJS = require("crypto-js");
let value = "5"; //待加密的字符串
let secret_value = "aiding88";
// 密匙和向量处理
let secret = CryptoJS.enc.Utf8.parse(secret_value);
// 加密
let encrypted = CryptoJS.AES.encrypt(value, secret, {
// mode 支持 CBC, CFB,CTB,ECB,OFB,OFB, 默认CBC
mode: CryptoJS.mode.ECB,
// NoPadding, zeropadding 默认Pkcs7 即 pkcs5
padding: CryptoJS.pad.Pkcs7
});
// 将加密结果转换为字符串
encrypted = encrypted.toString();
console.log(secret);
console.log(value);
console.log(encrypted);

View 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

View File

@ -0,0 +1,35 @@
import requests
from aes_encrypt import decrypt, encrypt
def challenge60(page, encrypted_text):
url = f"https://www.python-spider.com/api/challenge60/{encrypted_text}"
print(url)
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(5, 101):
print('aiding88', str(page))
encrypted_text = encrypt('aiding88', str(page))
print(encrypted_text)
response_json = challenge60(page, encrypted_text)
data_list = response_json.get('data')
print(data_list)
exit()
for data in data_list:
data_num += int(data.get('value'))
print(data_num)
print(data_num)
if __name__ == '__main__':
run()