繁体   English   中英

使用 python pbkdf2_hmac-sha256 + salt 计算测试哈希值不一样

[英]Computing a test hash with python pbkdf2_hmac-sha256 + salt not the same vaules

对于我所在的加密课程,如果计算机知道以下定义的信息,我们的任务是制作一个程序来检查密码。 老师给了我们一套工作固定信息。

我正在尝试编写一个 python 代码来验证一组给定的基于已知和固定的用户数据......

摘要方法:HMAC-SHA256

回合数:100000

盐:“e65814e4382759f85550029e723dc7e7”

密码:“州长冲洗喙”

输出派生的:“5f37a3bd08ac1c7d163294a3cb192ed1407b62bbc6a6259fee55f6e53f754273”

这是我生成派生的代码以检查上述派生...

key = hashlib.pbkdf2_hmac('sha256', b'governor washout beak', b'e65814e4382759f85550029e723dc7e7', 100000, dklen=32)
print(binascii.hexlify(key))

但是我得到了“0ce7d2e654c0ba80e67348c9610ca1851312458166ee8c9e6d46666832a21b11”。 我不明白缺少什么。

错误是代码从 ascii >> binary 而不是 hex >> binary 获取盐,所以你想使用 binascii 模块:

import binascii

hexstr = 'e65814e4382759f85550029e723dc7e7'

binascii.unhexlify(hexstr)

b"\xe6X\x14\xe48'Y\xf8UP\x02\x9er=\xc7\xe7"

在python 3中,这可以写成如下:

hexstr = 'e65814e4382759f85550029e723dc7e7'
pbkdf2_hmac_key = hashlib.pbkdf2_hmac('sha256', b'governor washout beak', bytes.fromhex(hexstr), 100000, dklen=32)
print(pbkdf2_hmac_key.hex())
# 5f37a3bd08ac1c7d163294a3cb192ed1407b62bbc6a6259fee55f6e53f754273

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM