为什么 md5 算法在散列时接受 numpy 的 int64 而不是整数?

毛里西奥
import hashlib
hash = hashlib.md5

我目前正在尝试了解为什么以下行有效:

hash(np.int64(identifier)).digest()

而这一行没有:

hash(identifier).digest()

第二行基本上显示以下错误: object supporting the buffer API required

作为旁注,该identifier变量是一个整数。据我所知,整数(Python 中的默认整数)占用 32 位(或 4 个字节),而 numpy 的 np.int64 占用 64 位(或 8 个字节)的内存。

那么,为什么第一行有效而第二行无效?这是md5的要求吗?

保罗 M。

它之所以有效,是因为 numpy 整数足以实现所谓的Buffer APIhashlib.md5 需要一个类似字节的对象。python int 不是类似字节的对象。一个实现了 Buffer API 的对象可以被转换成一个类似字节的对象。它与一般的 MD5 算法无关。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么 Numpy 的 int 数据类型与 Numpy 的 int64 数据类型的类型不同?

为什么math.Pow10(e int)返回float64而不是int64?

为什么在 AWS Redshift 中使用 md5 散列密码时密码身份验证失败?

为什么io.WriterTo的WriteTo方法返回int64而不是int?

为什么服务堆栈返回Int64而不是Int32?

为什么numpy.core.numeric._typelessdata中有两个np.int64(为什么numpy.int64不是numpy.int64?)

为什么不使用uint32而不是int64?

返回interface {}而不是int64时的额外分配

为什么插入 Int64 值时出现 SQLite.swift 错误?

为什么numpy整数减法会产生float64?

pandas / numpy int64(python 3.6)中发生意外的32位整数溢出

为什么 phpmyadmin 不懂 MD5?

为什么默认情况下PostgreSQL在MD5哈希中存储用户密码不是安全漏洞?

为什么int32 / int64比int慢?

使用int64而不是int32时,for循环性能要慢得多

SAS MD5散列

比较md5散列

为什么NumPy int不是Python int的实例,而NumPy float是Python float的实例?

Numpy int64() 函数参数?

生成快照包时“停止超时不是整数”-为什么?

md5 numpy数组的快速方法

为什么根据我的numpy数组是int64还是uint8类型,按元素加/减的输出为何不同?

为什么int,int64等不是go中的关键字?如果它们是预先声明的标识符,则它们的声明在通用块中的外观如何?

移位整数时如何绕过Go int64值限制?

为什么我的Int64值变成零?

为什么网站提供文件的 MD5 哈希值?

为什么我的蛮力MD5骇客无法运作?

为什么解密MD5校验和这么容易

为什么仍然大量使用MD5?