拿 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. 关于封装axios报错Cyclic dependency的问题

    在npm start的时候直接报错Cyclic dependency循环依赖 JS 循环依赖 (require cycle)_腾飞日记-CSDN博客_js循环依赖 可以看上面的博文了解一下这个错大概在 ...

  2. Java 读取 IP 地址

    使用 InetAddress 类 可以利用 Java 自带的 InetAddress 类来检查一个字符串是否为有效的 IP 地址: import java.net.InetAddress; // 导入 ...

  3. Visual Studio Code 配置文件关联

    在编写 Linux 的 .service 文件的时候,我发现 .service 文件的本质是 INI 文件.然而 VS Code 却并没有使用 INI 格式进行语法高亮.于是我通过如下设置使 VS C ...

  4. 性能、成本与 POSIX 兼容性比较: JuiceFS vs EFS vs FSx for Lustre

    JuiceFS 是一款为云环境设计的分布式高性能文件系统.Amazon EFS 易于使用且可伸缩,适用于多种应用.Amazon FSx for Lustre 则是面向处理快速和大规模数据工作负载的高性 ...

  5. spark 解析 kafka message

    备用 https://databricks.com/blog/2018/11/30/apache-avro-as-a-built-in-data-source-in-apache-spark-2-4. ...

  6. 技术教程 | 基于 Web 端的屏幕共享实践

    ​ 屏幕共享的英文叫做 DesktopSharing,通俗点讲就是将自己电脑的画面分享给其他人, 被分享的可以是整个电脑屏幕.应用程序或者某一个打开的网页等等. 而随着音视频领域的深入发展,完备的功能 ...

  7. 合合信息推出国央企智能文档处理解决方案,AI赋能信创国产化

    信息时代,数字化转型已成为推动经济高质量发展的关键力量.国央企是国民经济的重要支柱,其数字化转型进程关乎着自身与产业链上下游企业的共同发展.文档的智能化处理可有效提升信息流转的效率.促进知识的沉淀与传 ...

  8. Spring —— bean生命周期

    bean生命周期 生命周期:从创建到消亡的完整过程 bean生命周期:bean从创建到销毁的整体过程 bean生命周期控制:在bean创建后到销毁前做一些事情   方式一:配置控制生命周期 <b ...

  9. vagrant文件基础配置

    Vagrant.configure("2") do |config| config.vm.box = "centos7" # box 名称 config.vm. ...

  10. 分享几个实用且高效的EF Core扩展类库,提高开发效率!

    前言 今天大姚给大家分享3款开源且实用的EF Core扩展类库,希望能帮助你在使用 EF Core 进行数据库开发变得更加高效和灵活,提高开发效率. EF Core介绍 Entity Framewor ...