56js加密经典入门数据加密-RSA

This commit is contained in:
luzhisheng 2023-02-09 15:42:40 +08:00
parent 180d4b7f35
commit 2cd1f34a34
4 changed files with 16766 additions and 11 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,17 @@
import json
from rsa_encrypt import RsaUtil
import requests
def challenge59(page):
url = "https://www.python-spider.com/api/challenge59"
def decrypt_res(response_json):
rsa = RsaUtil()
decrypt_result = rsa.decrypt_by_private_key(response_json.get('result'))
return decrypt_result
def challenge56(page):
url = "https://www.python-spider.com/api/challenge56"
payload = f"page={page}"
session = requests.session()
headers = {
@ -11,18 +19,15 @@ def challenge59(page):
}
session.headers = headers
response = session.request("POST", url, data=payload)
return response.text
return response.json()
def run():
data_num = 0
for page in range(1, 101):
res_dict = json.loads(challenge59(page))
data_list = res_dict.get('data')
if page == 51:
data_list[0]['value'] = '5734\r'
response_json = challenge56(page)
decrypt_result = decrypt_res(response_json)
data_list = json.loads(decrypt_result).get('data')
data_list_num = []
for data in data_list:
data_list_num.append(int(data.get('value')))

View File

@ -0,0 +1,21 @@
# 知识点: RSA加密
## 解题思路
RSA是非对称加密算法非对称加密算法指的是加密和解密使用不同的密钥除了加解密的作用还有“签名”的作用。通常来说非对称加密比对称加密要耗时间。
查看请求返回内容,发现结果加密
![请求](./img/1.png)
由于此题已经说明是RSA加密这里搜索解密关键词`setPrivateKey`
![请求](./img/2.png)
发现`A.setPrivateKey(PVA.toString("ascii"))`;就是设置了私钥
控制台直接打印出私钥
![请求](./img/3.png)
私钥已经找到了,解密就是写代码的时间问题了

View File

@ -12,8 +12,8 @@ class RsaUtil(object):
company_pub_file=PUBLIC_KEY_PATH,
company_pri_file=PRIVATE_KEY_PATH):
if company_pub_file:
self.company_public_key = rsa.PublicKey.load_pkcs1_openssl_pem(open(company_pub_file).read())
# if company_pub_file:
# self.company_public_key = rsa.PublicKey.load_pkcs1_openssl_pem(open(company_pub_file).read())
if company_pri_file:
self.company_private_key = rsa.PrivateKey.load_pkcs1(open(company_pri_file).read())