在检查阵列是否更改时需要建议

时间:2019-03-05 15:02:01

标签: php compare md5

我正在一个项目中,该项目将信息从外部API保存到数据库中。该API仅显示最新的可用信息,因此我需要检查此API并将其与我自己的数据库信息进行比较,以查看是否有新更改。

之前,我是通过手动比较每个值来做到这一点的:

if($externalapi['item'] !== $mydatabase['item']) {
    // changes detected!
}

现在我正在制作这个项目的V2,我觉得这不是正确的方法,我应该做些不同的事情。

我已经考虑过将MD5用作外部API输出以及我自己的数据库输出,然后将两者进行比较。

if(md5($externalapi) !== md5($mydatabase)) {
    // changes detected!
}

但是我不确定那有多可靠。

什么是最好的方法?

1 个答案:

答案 0 :(得分:0)

在确定此类哈希函数的可靠性时,您可能会对密码哈希的“生日问题”名称冲突概率感兴趣。例如,我相信,如果您在100年的时间内每秒对数十亿个不同的列表进行哈希处理,那么典型的MD5哈希将有50%的机会产生名称冲突。

搜索密码散列的“生日问题”或“名字冲突”概率将为您提供所有可能需要的数学知识,以了解可靠性。