Mau*_*cio 0 python hash md5 numpy
import hashlib
hash = hashlib.md5
Run Code Online (Sandbox Code Playgroud)
我目前正在尝试了解以下行的工作原理:
hash(np.int64(identifier)).digest()
Run Code Online (Sandbox Code Playgroud)
而且这行没有:
hash(identifier).digest()
Run Code Online (Sandbox Code Playgroud)
第二行基本上显示以下错误: object supporting the buffer API required
附带说明,identifier变量是整数。据我所知,整数(Python中的默认整数)占用32位(或4个字节),而numpy的np.int64占用64位(或8个字节)的内存。
然后,为什么第一行工作而第二行行不通?这是md5的要求吗?
它之所以有效,是因为numpy整数足以实现所谓的Buffer API。hashlib.md5需要一个类似字节的对象。python int不是类似字节的对象。可以将实现Buffer API的对象转换为类似字节的对象。通常,它与MD5算法无关。
| 归档时间: |
|
| 查看次数: |
50 次 |
| 最近记录: |