php - 需要有关检查数组更改的建议
问题描述
我正在开发一个项目,该项目将信息从外部 API 保存到数据库中。这个 API 只显示最新的可用信息,所以我需要检查这个 API 并与我自己的数据库信息进行比较,看看是否有新的变化。
之前,我通过手动比较每个值来做到这一点:
if($externalapi['item'] !== $mydatabase['item']) {
// changes detected!
}
现在我正在制作这个项目的 V2,我觉得这不是正确的方法,我应该以不同的方式来做。
我考虑过 MD5'ing 外部 API 输出和我自己的数据库输出,并比较这两者。
if(md5($externalapi) !== md5($mydatabase)) {
// changes detected!
}
但我不确定这有多可靠。
最好的方法是什么?
解决方案
在确定此类用途的散列函数的可靠性时,您会对密码散列的“生日问题”名称冲突概率感兴趣。例如,如果您在 100 年的过程中每秒散列数十亿个不同的列表,我相信一个典型的 MD5 散列将有 50% 的机会产生名称冲突。
搜索加密哈希的“生日问题”或“名称冲突”概率将为您提供理解可靠性所需的所有数学。
推荐阅读
- python - 有没有办法将 python 列表导出到 csv 文件?
- redis - Redis Mass Insertion 不适用于(错误)ERR 未知命令
- mysql - 如何删除另一个表中不存在的 JSON 键?
- swagger - OpenAPI 中的可变查询参数名称
- python - ValueError 无法广播从形状 (1) 到形状 () 的掩码
- python - 在for循环中绘制多个带有位置的饼图
- php - 无法保护 PDF 下载路径 Route[login] not defined - laravel
- javascript - 遍历查询数组并将结果附加到 JavaScript 中的对象
- amazon-web-services - 如何在aws上运行多个站点?
- c# - 嵌套列表上的 LINQ 查询