HMACSHA1在生产中生成的散列差异:在pod中运行的基于flaskdocker的应用程序

2024-05-19 07:06:49 发布

您现在位置:Python中文网/ 问答频道 /正文

当移动到k8s集群上的生产环境时,webhook dispatcher哈希与接收客户端不同。而在本地,他们工作得很好。你知道吗

我实现了一个webhook分派器,它在分派之前生成json主体的HMAC-SHA1签名。在本地测试时,签名和验证的摘要是相同的,当我部署同一段代码时,也就是将调度器部署到k8s pod,用于测试的同一个json,从webhook接收器客户端生成不同的散列

示例json

{
  "event": "review.manual", 
  "data": {
    "recommendation": "accept", 
    "author": "Ebot Tabi", 
    "datetime": "02 Oct, 2019, 09:41AM", 
    "transaction": {
      "transaction_score": 37, 
      "transaction_total_price": "4,809.00", 
      "is_fraud": "no", 
      "transaction_id": "zduaevejkjvnjo", 
      "customer_id": "sedeupdgixswil"
    }, 
    "customer": {
      "first_name": "Joseph", 
      "last_name": "Jones", 
      "email": "petersonrobert@gmail.com", 
      "customer_id": "sedeupdgixswil"
    }
  }
}

用于哈希生成的python代码:

def generate_digest(data, secret):
    return hmac.new(secret.encode("utf-8"), msg=data, digestmod=hashlib.sha1).hexdigest()

Tags: 代码nameidjson客户端分派datasecret

热门问题