0

我目前正在为客户建立一个数字散列系统。如果我用hash('sha256', $number)一个一个地对数字进行哈希处理,我可以将它们插入到数据库中,以后可以正确查找它们,没有任何问题。

如果我发送一个数字数组,例如:(1041, 1042, 1043, 1044, 1045)通过相同的哈希('sha256', $array)输出与我一一完成时得到的输出不匹配。发生这种情况有什么特别的原因吗?散列数组是一个坏主意吗?

代码示例

如果我按如下方式单独传递数字 1031,我将得到: 3e34b5dc434bcf3186f089d362691cfac1b17231601f2f402dc79015be878d83

$number = 1031;
$hash = hash('sha256', $number);

如果数字 1031 通过以下哈希传递,我得到的结果是:d83e4573f6d32ca3f17b77046809c1effe3b462b4cd7338d2c80568e63c76599

while($row = mysqli_fetch_assoc($query)){
     $numbers = $row['pnumbers'];
     $hash = hash('sha256', $numbers);
 }

所以我想我的问题归结为:是否可以一次散列多个数字并检索相同的输出,就好像我要一个一个地散列它们一样?还是我错过了什么或做错了什么?

4

1 回答 1

0

不,没有 for(each) 循环是不可能的。你怀疑输出会是什么,一个包含哈希的数组?在这里您可以找到哈希函数的文档

于 2013-06-06T14:42:45.693 回答