如何在 python 中创建 sha1 哈希
how to create a sha1 hash in python
我的objective是在python中使用智能卡执行"Hashsigning"。 python 中使用了 hashlib,但没有特定的 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
}
感谢任何帮助。提前谢谢你
您实际上得到了 40,十六进制为 0x28
。将十六进制的哈希解码为 ASCII,如下所示
>>> import hashlib
>>> hash_object = hashlib.sha1(b'HelWorld')
>>> pbHash = hash_object.hexdigest()
>>> length = len(pbHash.decode("hex"))
>>> print length
20
或者简单地使用 digest
而不是 Dan D 建议的 hexdigest
。
我的objective是在python中使用智能卡执行"Hashsigning"。 python 中使用了 hashlib,但没有特定的 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
}
感谢任何帮助。提前谢谢你
您实际上得到了 40,十六进制为 0x28
。将十六进制的哈希解码为 ASCII,如下所示
>>> import hashlib
>>> hash_object = hashlib.sha1(b'HelWorld')
>>> pbHash = hash_object.hexdigest()
>>> length = len(pbHash.decode("hex"))
>>> print length
20
或者简单地使用 digest
而不是 Dan D 建议的 hexdigest
。