【问题标题】:How to perform SHA-256 on binary values with Hashlib?如何使用 Hashlib 对二进制值执行 SHA-256?
【发布时间】:2017-11-22 03:10:41
【问题描述】:

我正在使用 Python 2 并尝试使用 hashlib 对二进制值执行 sha256。

我有点卡住了,因为我对这一切都很陌生,但已经拼凑起来了:

hashlib.sha256('0110100001100101011011000110110001101111'.decode('hex')).hexdigest()

我相信它基于将十六进制值('68656c6c6f')替换为上述字符串并将其返回

2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

与使用“hello”或“68656c6c6f”的this answer 相比。

我认为答案在于解码组件,但我找不到仅二进制“hex”或“utf-8”的示例

是否有人能够建议需要更改的内容,以便函数解释为二进制值而不是十六进制值?

【问题讨论】:

    标签: python binary decode sha256 hashlib


    【解决方案1】:

    这是执行您正在寻找的每个数据转换的代码。这些步骤都可以组合,但在这里分开,以便您可以看到每个值。

    import hashlib
    import binascii
    
    binstr = '0110100001100101011011000110110001101111'
    hexstr = "{0:0>4X}".format(int(binstr,2)) # '68656C6C6F'
    data = binascii.a2b_hex(hexstr) # 'hello'
    output = hashlib.sha256(data).hexdigest()
    print output
    

    输出:

    2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

    【讨论】:

      猜你喜欢
      • 2018-02-22
      • 1970-01-01
      • 2016-08-01
      • 2011-06-28
      • 2014-05-13
      • 2023-03-11
      • 1970-01-01
      • 2021-04-28
      相关资源
      最近更新 更多