对于加密类,如果计算机知道以下定义的信息,我们的任务是制作程序来检查密码。老师给了我们一套固定的信息。
我正在尝试编写一个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" 代替。我不明白缺少什么。
答案 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