我目前正在为客户设置数字哈希系统。如果我使用 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);
}
所以我想我的问题可以归结为:是否可以一次哈希多个数字并检索相同的输出,就像我将它们一一哈希一样?或者我错过了什么或做错了什么?
最佳答案
不,没有 for(each) 循环是不可能的。您怀疑输出会是什么,一个包含哈希值的数组? Here您可以找到哈希函数的文档
关于PHP - 是否可以对数字数组进行哈希处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16964888/