我正在一个项目中,该项目将信息从外部API保存到数据库中。该API仅显示最新的可用信息,因此我需要检查此API并将其与我自己的数据库信息进行比较,以查看是否有新更改。
之前,我是通过手动比较每个值来做到这一点的:
if($externalapi['item'] !== $mydatabase['item']) {
// changes detected!
}
现在我正在制作这个项目的V2,我觉得这不是正确的方法,我应该做些不同的事情。
我已经考虑过将MD5用作外部API输出以及我自己的数据库输出,然后将两者进行比较。
if(md5($externalapi) !== md5($mydatabase)) {
// changes detected!
}
但是我不确定那有多可靠。
什么是最好的方法?
答案 0 :(得分:0)
在确定此类哈希函数的可靠性时,您可能会对密码哈希的“生日问题”名称冲突概率感兴趣。例如,我相信,如果您在100年的时间内每秒对数十亿个不同的列表进行哈希处理,那么典型的MD5哈希将有50%的机会产生名称冲突。
搜索密码散列的“生日问题”或“名字冲突”概率将为您提供所有可能需要的数学知识,以了解可靠性。