https://aes.cryptohack.org/ecb_oracle 这道题来做示范。

由于这个链接的本地服务器在外国,因此我们很容易就会连接超时。

如下一个脚本:

import requests
from tqdm import *
from Crypto.Util.number import *
known = b'' for i in range(31, 0, -1):
text = hex(bytes_to_long(b'0' * i))[2:]
result = s.get(f'http://aes.cryptohack.org/ecb_oracle/encrypt/{text}')
t1 = result.json()["ciphertext"]
print(t1)
for j in range(0x31, 0x80):
n = b'0' * i + known + long_to_bytes(j)
text = hex(bytes_to_long(n))[2:]
# print(text)
guess = s.get(f'http://aes.cryptohack.org/ecb_oracle/encrypt/{text}')
t2 = guess.json()["ciphertext"]
print(t2)
if t1[32:64] == t2[32:64]:
known += long_to_bytes(j)
print(known)
break
if known[len(known) - 1] == b'}':
break
print(known)

我们可以通过修改 requests 参数来修改重连次数,超时时间。

# 修改最大重连次数
requests.adapters.DEFAULT_RETRIES = 100000 # 新建一个容器
s = requests.Session() # 将 timeout 变量中连接超时时间和接收超时时间改变(默认为10)
s.timeout = (1000.0, 1000.0)

于是下面这份代码就可以较为稳定的连接了。

import requests
from tqdm import *
from Crypto.Util.number import *
known = b'' requests.adapters.DEFAULT_RETRIES = 100000
s = requests.Session()
s.timeout = (1000.0, 1000.0) for i in range(31, 0, -1):
text = hex(bytes_to_long(b'0' * i))[2:]
result = s.get(f'http://aes.cryptohack.org/ecb_oracle/encrypt/{text}')
t1 = result.json()["ciphertext"]
print(t1)
for j in range(0x31, 0x80):
n = b'0' * i + known + long_to_bytes(j)
text = hex(bytes_to_long(n))[2:]
# print(text)
guess = s.get(f'http://aes.cryptohack.org/ecb_oracle/encrypt/{text}')
t2 = guess.json()["ciphertext"]
print(t2)
if t1[32:64] == t2[32:64]:
known += long_to_bytes(j)
print(known)
break
if known[len(known) - 1] == b'}':
break
print(known) # crypto{p3n6u1n5_h473_3cb}

关于Requests交互超时的处理方式的更多相关文章

  1. 基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式

    在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交,方便页面和服务器后端进行数据的交互处理.本文主要介绍利用Jquery处理数据交互的几种方式,包括 ...

  2. Android中WebView的JavaScript代码和本地代码交互的三种方式

    一.Android中WebView的漏洞分析最近在开发过程中遇到一个问题,就是WebView使用的时候,还是需要解决之前系统(4.2之前)导致的一个漏洞,虽然现在这个系统版本用户很少了,但是也不能忽视 ...

  3. Flex(ActionScript)与JavaScript交互的两种方式示例

    随着各单位部门信息化进程的不断发展,互通互联.共享协调不断的被越来越多的客户所重视.很多新项目都要去必须能够集成已有的早期系统,至少也要能够实现交互对接.今天跟大家分享的是系统对接中ActionScr ...

  4. (转)基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式

    http://www.cnblogs.com/wuhuacong/p/4085682.html 在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交, ...

  5. Android中H5和Native交互的两种方式

    Android中H5和Native交互的两种方式:http://www.jianshu.com/p/bcb5d8582d92 注意事项: 1.android给h5页面注入一个对象(WZApp),这个对 ...

  6. 利用QMP和QEMU虚拟机交互的几种方式

    QMP是一种基于JSON格式的传输协议,我们能利用它与一个QEMU虚拟机实例进行交互,例如查询,更改虚拟机的状态,获取设备信息等等.下面是几种创建QMP的方法以及对其它的一些基本命令的使用: 1.基于 ...

  7. 深入分析:Fragment与Activity交互的几种方式(一,使用Handler)

    这里我不再详细介绍那写比较常规的方式,例如静态变量,静态方法,持久化,application全局变量,收发广播等等. 首先我们来介绍使用Handler来实现Fragment与Activity 的交互. ...

  8. Django之前后端交互使用ajax的方式

    1. 在项目中前后端数据相互是一种常态, 前后端交互使用的是ajax请求和form表单的请求两种方式" ajax与form表单的区别在于: form 是整个页面刷新提交的,  但是ajax ...

  9. Android Fragment与Activity交互的几种方式

    这里我不再详细介绍那写比较常规的方式,例如静态变量,静态方法,持久化,application全局变量,收发广播等等. 首先我们来介绍使用Handler来实现Fragment与Activity 的交互. ...

  10. 【Python】 requests 各种参数请求的方式

    Python使用requests发送post请求 1.我们使用postman进行接口测试的时候,发现POST请求方式的编码有3种,具体的编码方式如下: A:application/x-www-form ...

随机推荐

  1. C#应用 - 破解注入外挂必备神器Harmony

    目录 前言 1,快速开始 1.1 SomeGameClass类 1.2 Patch01类 1.3 MyPatcher类 1.4 跑起来 2,破解 2.1 类库项目 2.2 winform项目 3,注入 ...

  2. github代理加速

    终端命令行 支持终端命令行 git clone , wget , curl 等工具下载.支持 raw.githubusercontent.com , gist.github.com , gist.gi ...

  3. CSIG青年科学家会议圆满举行,合合信息打造智能文档处理融合研究新范式

          近期,第十九届中国图象图形学学会青年科学家会议(简称"会议")在广州召开.会议由中国图象图形学学会(CSIG)主办,琶洲实验室.华南理工大学.中山大学.中国图象图形学学 ...

  4. SPiT:超像素驱动的非规则ViT标记化,实现更真实的图像理解 | ECCV 2024

    Vision Transformer(ViT) 架构传统上采用基于网格的方法进行标记化,而不考虑图像的语义内容.论文提出了一种模块化的超像素非规则标记化策略,该策略将标记化和特征提取解耦,与当前将两者 ...

  5. Figma 学习笔记 – Color

    大纲 Figma 的颜色是通过 FIll 实现的 (Fill 还有其它功能比如 fill 图片) 整体大概长这样, 我们一个一个看 颜色和 opacity

  6. 前端项目通过 Nginx 发布至 Linux,并通过 rewrite 配置访问后端接口

    〇.前言 本文通过将 arco 框架的前端项目,部署至 CentOS 7,并访问同服务器的 WebAPI 接口,来简单演示一下,如何将前端项目发布至 Linux 系统. 关于 ASP.NET WebA ...

  7. Tomcat——idea集成本地Tomcat

    IDEA 集成本地Tomcat 添加配置      添加本地Tomcat服务器      配置本地Tomcat路径      部署项目             在 webapp 中添加一个简单的页面作 ...

  8. [Tkey] 与非

    解法原理1 首先我们需要明白 \(\operatorname{nand}\) 的运算: \[\operatorname{not}(a\operatorname{nand}b)=a\operatorna ...

  9. トヨタ自動車プログラミングコンテスト2024#7(ABC 362)

    非常好名次,使我的 \(1\) 旋转 四发罚时应该是这次比赛最唐的东西了,没有就进前一千了 A.Buy a Pen 特判秒了,懒得打三种 ans=,所以就把不能选的那个赋值成无穷大了 #include ...

  10. MySQL笔记--数据库定时备份与恢复

    利用crontab定时.利用mysqldump备份 编写sh启动脚本时记得赋予执行权限(x) 如果没有mysqldump命令执行,基于centos7 yum -y install mysql-clie ...