小编jjy*_*yoh的帖子

Node & python 不返回相同的 hash256

我的 NodeJS 和 Python 脚本没有返回相同的哈希值,是什么导致了这个问题?

节点.js

const { createHmac } = require("crypto");
var message = 'v1:1583197109:'
var key = 'Asjei8578FHasdjF85Hfjkasi875AsjdiAas_CwueKL='
const digest = Buffer.from(key, "base64");
const hash = createHmac("sha256", digest)
  .update(message)
  .digest("hex");

console.log(hash)
> 7655b4f816dc7725fb4507a20f2b97823979ea00b121c84b76924fea167dcaf7
Run Code Online (Sandbox Code Playgroud)

蟒蛇3

message = 'v1:1583197109:'
key = 'Asjei8578FHasdjF85Hfjkasi875AsjdiAas_CwueKL=' + '=' #add a "=" to avoid incorrect padding
digest = base64.b64decode(key.encode('utf-8'))
hash_ = hmac.new(digest, message.encode('utf-8'), hashlib.sha256)
hash_result = hash_.hexdigest()
print(hash_result)
> c762b612d7c56d3f9c95052181969b42c604c2d41b7ce5fc7f5a06457e312d5b
Run Code Online (Sandbox Code Playgroud)

我想这可能是额外的=以避免不正确的填充,但我的密钥以单个=结尾。

python sha256 hmac node.js

5
推荐指数
1
解决办法
92
查看次数

为什么 AWS Lambda 使用 requests.get 对于无法解析的域会出现持续 10 秒的延迟?

当我尝试使用requestsPython 中的库从 AWS Lambda 函数向未解析的域名发出 HTTP 请求时,遇到了一种奇怪的行为。

当我尝试使用以下方式发出请求时:

response = requests.get('https://benandjerry.com', timeout=(1,1))
Run Code Online (Sandbox Code Playgroud)

在 AWS Lambda 中,始终需要大约 10 秒的时间才会引发错误。但是,当我在本地环境中运行相同的代码时,它是即时的。我已经使用日志和隔离测试验证了这一点。

我考虑过 Lambda 冷启动、Lambda 运行时差异、甚至 VPC 配置等潜在问题,但似乎都不是根本原因。

我还尝试使用curl访问域,它立即返回无法解析主机:benandjerry.com。

最后一点,这种情况发生在特定的未解析域名上,而不是所有域名上。

这是一个示例:

仅供参考,您可以通过在 AWS 上创建 python3.9 Lambda 并添加以下代码来轻松复制该问题:

import json
from botocore.vendored import requests
import urllib.request
import os

def lambda_handler(event, context):
    # TODO implement
    url = 'http://benandjerry.com'
    try:
        response = requests.get(url, proxies=None,verify=False)
    except Exception as e:
        print(e)

    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 对于使用请求的无法解析的域,AWS Lambda …

python python-requests aws-lambda

5
推荐指数
1
解决办法
522
查看次数

如何使用beautifulsoup提取h1标签文本

我想了解如何使用漂亮的汤提取包含许多其他标签的h1标签文本:

<h1 class="listing-name">
Hôtel Vevey 
<span class="entry-feedbacks-summary-title-rating-stars-container bootstrap">
<span class="entry-feedbacks-summary-title-rating-stars entry-feedbacks-summary-title-rating-stars-empty" data-container=".entry-feedbacks-summary-title-rating-stars-container" data-content="Il n'y a pas encore d'avis de clients à propos de Astra Hôtel Vevey 4*sup. Cliquez pour évaluer." data-placement="right" data-toggle="popover" data-trigger="hover" data-original-title="" title="">
<a class="feedback-login-link entry-feedbacks-header-link" href="/auth/localch?origin=https%3A%2F%2Ftel.local.ch%2Ffr%2Fd%2FVevey%2F1800%2FHotel%2FAstra-Hotel-Vevey-4sup-SVGb8b5z-QdrzGTddmyAAg%3Fwhat%3DHotel%26where%3DVaud%2B%2528Canton%2529%23entry-feedbacks-bottom-rate-button"><span class="entry-feedback-rating-star">
<i class="icon-star-outline entry-feedback-rating-star-empty"></i>
</span>
<span class="entry-feedback-rating-star">
<i class="icon-star-outline entry-feedback-rating-star-empty"></i>
</span>
<span class="entry-feedback-rating-star">
<i class="icon-star-outline entry-feedback-rating-star-empty"></i>
</span>
<span class="entry-feedback-rating-star">
<i class="icon-star-outline entry-feedback-rating-star-empty"></i>
</span>
<span class="entry-feedback-rating-star">
<i class="icon-star-outline entry-feedback-rating-star-empty"></i>
</span>

</a></span>

</span>
</h1>
Run Code Online (Sandbox Code Playgroud)

我正试图在h1标签"hôtelVevey"之后提取文本.

import requests
from bs4 import BeautifulSoup

url = …
Run Code Online (Sandbox Code Playgroud)

python beautifulsoup

2
推荐指数
2
解决办法
1万
查看次数