作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我的目标是在 python 中使用智能卡执行“哈希签名”。使用了 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
}
感谢任何帮助。提前谢谢你
最佳答案
你实际上得到了 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建议。
关于python - 如何在 python 中创建 sha1 哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37482854/
我是一名优秀的程序员,十分优秀!