我的目标是在python中使用智能卡执行“Hashsigning”。有使用hashlib,但python中没有特定的SHA1或SHA256函数。 我的工作:
hash_object = hashlib.sha1(b'HelWorld')
pbHash = hash_object.hexdigest()
但是我得到的哈希对象的长度是28而不是我应该得到14或20,这样我就可以开启条件
switch ( dwHashLen )
{
case 0x14: // SHA1 hash
call scard transmit
case 0x20: // SHA256 hash
}
感谢任何帮助。提前谢谢
答案 0 :(得分:3)
你实际上得到40,十六进制为0x28
。将十六进制的散列解码为ASCII,如下所示
>>> import hashlib
>>> hash_object = hashlib.sha1(b'HelWorld')
>>> pbHash = hash_object.hexdigest()
>>> length = len(pbHash.decode("hex"))
>>> print length
20
或者只是使用digest
代替hexdigest
作为Dan D建议。