首页 > 其他分享 >关于Requests交互超时的处理方式

关于Requests交互超时的处理方式

时间:2024-10-12 11:11:15浏览次数:7  
标签:text bytes long print known Requests 超时 交互 requests

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}

标签:text,bytes,long,print,known,Requests,超时,交互,requests
From: https://www.cnblogs.com/YipChipqwq/p/18460137

相关文章

  • 深入解析Spring AI框架:在Java应用中实现智能化交互的关键
    今天我们的SpringAI源码分析主题即将结束。我已经对自己感兴趣的基本内容进行了全面的审视,并将这些分析分享给大家。如果你对这个主题感兴趣,可以阅读以下几篇文章。每篇文章都层层递进,深入探讨相关内容。考虑到长文可能让大家感到疲惫,我采用了逐步推进的方式,确保每一篇都简明易懂......
  • ERP&MES生产制造管理综合系统原型 Axure原型 交互设计 Axure实战项目
    ERP&MES生产制造管理综合系统原型图PC端综合管理系统+移动端工单小程序ERP&MES生产制造管理综合系统原型图是用于系统的功能和界面进行可视化展示的原型设计图,本作品原型图通过图形和交互元素的方式,呈现出系统界面的布局、功能和操作流程。通过原型图,可以直观地展示系统的整......
  • 程序的运行时间(超时是咋回事 + 测试实验)
    一些同学可能对计算机运行的速度还没有概念,只是感觉计算机运行速度应该会很快,那么在OJ(onlinejudge,比如大家熟悉的leetcode)上做算法题目的时候为什么OJ会判断运行的程序超时呢?其超时情况如图所示:超时是怎么回事在leetcode上练习算法的时候应该都遇到过一种错误是“超时”。也......
  • 智慧设备管理综合系统移动端原型图 Axure原型 交互设计 Axure实战项目
    智慧设备管理综合系统原型图移动端SmartDeviceManagementIntegratedSystemPrototype智慧设备管理综合系统原型图是一种用于展示移动端设备管理系统界面设计的设计示意图,本作品原型图通过图形和交互元素的方式,呈现出移动端界面的布局、功能和操作流程。通过原型图,可以直......
  • 如果你在写图论 2 的 I 题,这里有一个实现的比较一般的交互库
    #include<bits/stdc++.h>//交互题什么的最讨厌了usingnamespacestd;usingllt=longlong;usingllf=longdouble;usingull=unsignedlonglong;mt19937rnd(ull(newchar)*ull(newchar));constintN=1e5+3;structGph{ inthd[N],to[N<<1],nt[N<<1],......
  • .NET 实现的交互式 OA 系统
    前言近期,我们在后台收到了粉丝们的留言,需要一个高效办公自动化(OA)系统。为了回应大家的期待,今天我们推荐一款既灵活又强大的OA系统解决方案,帮助提升日常办公效率和团队协作水平。在日常工作中,我们经常遇到各种表单。传统的系统开发中,多一个录入界面就意味着要设计一个新的输入......
  • CNN Explainer: 交互式可视化学习卷积神经网络
    cnn-explainerCNNExplainer简介卷积神经网络(ConvolutionalNeuralNetworks,CNNs)是深度学习领域最重要的模型之一,在计算机视觉等领域取得了巨大成功。然而,由于CNN的复杂结构和抽象概念,对于初学者和非专业人士来说,理解CNN的工作原理往往存在较大困难。为了解决这个问题,......
  • 【JAVA开源】基于Vue和SpringBoot的医疗病历交互系统
    本文项目编号T072,文末自助获取源码\color{red}{T072,文末自助获取源码}......
  • 自然语言处理问答系统:智能交互的未来
    在人工智能和自然语言处理(NLP)技术快速发展的今天,问答系统已成为人机交互的重要方式。本文将深入探讨自然语言处理问答系统的工作原理、关键技术、应用场景以及未来发展趋势。1.什么是自然语言处理问答系统?自然语言处理问答系统是一种能够理解人类自然语言提问,并从大规模......
  • python爬虫 - 进阶requests模块
      ......