gpt4 book ai didi

python - 比较在 python 中作为输入传递的 2 个 sha512 哈希值

转载 作者:行者123 更新时间:2023-12-03 09:18:38 32 4
gpt4 key购买 nike

我有 2 个需要比较的哈希值。1 个来自 API,其他是我在内部计算的
我知道 2 sha512可以使用

进行比较
input1.digest() == input2.digest()

其中两个输入均为 sha512我的问题是,由于我从 API 获取其中 1 个,因此它的大小为 string格式和字符串没有 digest :

*** AttributeError: 'str' object has no attribute 'digest'

我认为这会起作用:

if(calculated_hash != input_hash):
return False
return True

如何为其中一个测试用例在内部生成哈希:

hash_val = sha512(parameters.encode('utf-8') + salt.encode('utf-8')).hexdigest()

但是由于哈希每次都是新的,所以这是行不通的。

如何在给定场景下比较这两个哈希值?

编辑:

输入中存在动态时间戳,因此收到的哈希值与接收到的参数生成的 vc 哈希值存在差异。但是,在比较 hexdigest 时,我仍然得到 False 值。 !! :\

最佳答案

secrets python 中的模块提供了一个函数“compare_digest”,该函数也可用于比较两个“sha”系列哈希函数的摘要和十六进制摘要。这是一个例子。

import hashlib, secrets

data_1 = b'Hello'
sha256_1 = hashlib.sha256(data_1).digest()

data_2 = b'Hello'
sha256_2 = hashlib.sha256(data_2).digest()

data_3 = b'However'
sha256_3 = hashlib.sha256(data_3).digest()

print(secrets.compare_digest(data_1, data_2)) #True
print(secrets.compare_digest(data_1, data_3)) #False

关于python - 比较在 python 中作为输入传递的 2 个 sha512 哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35169093/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com