使用python pbkdf2_hmac-sha256 + salt计算测试哈希不是相同的vaules

时间:2018-06-17 19:30:42

标签: python sha256

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

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

摘要方法:HMAC-SHA256

轮次:100000

盐:" e65814e4382759f85550029e723dc7e7"

密码:"州长冲洗喙"

输出派生:" 5f37a3bd08ac1c7d163294a3cb192ed1407b62bbc6a6259fee55f6e53f754273"

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

public static Rectangle CreateFromArray(this Rectangle self, int[] info)
{
    self.X = info[0];      self.Y = info[1];
    self.Width = info[2];  self.Height = info[3];
    return self;
}

然而我得到" 0ce7d2e654c0ba80e67348c9610ca1851312458166ee8c9e6d46666832a21b11" 代替。我不明白缺少什么。

2 个答案:

答案 0 :(得分:0)

错误是代码从ascii>>获取盐二进制非十六进制>>二进制所以 您想使用binascii模块:

import binascii

hexstr = 'e65814e4382759f85550029e723dc7e7'

binascii.unhexlify(hexstr)

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

答案 1 :(得分:0)

在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