Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python sha256十六进制字符串和二进制字符串的处理方式不同_Python_Encryption - Fatal编程技术网

Python sha256十六进制字符串和二进制字符串的处理方式不同

Python sha256十六进制字符串和二进制字符串的处理方式不同,python,encryption,Python,Encryption,我有一个十六进制,我通过下面的操作得到二进制表示 In [10]: binascii.unhexlify('950ef5cce9c32676ab67998e2245f682624f9abce6bb1392b67204159b82c020') Out[10]: '\x95\x0e\xf5\xcc\xe9\xc3&v\xabg\x99\x8e"E\xf6\x82bO\x9a\xbc\xe6\xbb\x13\x92\xb6r\x04\x15\x9b\x82\xc0 ' 只要检查一下我自己的理

我有一个十六进制,我通过下面的操作得到二进制表示

In [10]: binascii.unhexlify('950ef5cce9c32676ab67998e2245f682624f9abce6bb1392b67204159b82c020')
Out[10]: '\x95\x0e\xf5\xcc\xe9\xc3&v\xabg\x99\x8e"E\xf6\x82bO\x9a\xbc\xe6\xbb\x13\x92\xb6r\x04\x15\x9b\x82\xc0 '
只要检查一下我自己的理智,我就可以得到原始值

In [11]: binascii.hexlify('\x95\x0e\xf5\xcc\xe9\xc3&v\xabg\x99\x8e"E\xf6\x82bO\x9a\xbc\xe6\xbb\x13\x92\xb6r\x04\x15\x9b\x82\xc0 ')
Out[11]: '950ef5cce9c32676ab67998e2245f682624f9abce6bb1392b67204159b82c020'
现在我想要这个二进制值的
sha256

In [12]: hashlib.sha256('\x95\x0e\xf5\xcc\xe9\xc3&v\xabg\x99\x8e"E\xf6\x82bO\x9a\xbc\xe6\xbb\x13\x92\xb6r\x04\x15\x9b\x82\xc0 ').hexdigest()
Out[12]: '74d0ef097a15e1699b2476de3b700e86f54d8d3ec65485382c01dc7984b46f96'
我希望我最初拥有的十六进制值的
sha256
与二进制sha256匹配。没有

In [13]: hashlib.sha256('950ef5cce9c32676ab67998e2245f682624f9abce6bb1392b67204159b82c020').hexdigest()
Out[13]: 'cb0c91c3977b3433ce481511103e6454a5b781ec57849187aa0b2fe1b20e8078'
我的猜测是,
sha256
将值作为文本字符串表示,从字符串的角度来看,它们是不同的,但从十六进制和二进制的角度来看,它们是相同的


有没有办法告诉
sha256
如何处理它作为二进制值接收的值,或者我必须明确地这样做?我在文件里什么也没看到。只是想知道是否有或是否有人知道这样做的方法。

hashlib.sha256
对精确的输入字符串进行操作。因为十六进制字符串和二进制字符串是不同的,所以它们中的sha256是不同的。当您调用sha256时,您需要确保一致地传递相同的表单(十六进制和二进制都可以,但您必须一致地坚持一种表单)