是否有PHP函数或方法对数据进行校验和?

是否有PHP函数或方法对数据进行校验和?,php,mysql,Php,Mysql,我有一个用PHP开发的MySQL数据库,它将从每日数据源执行地址验证。我们会在我们这边解决更正问题,因为我们无法控制提要的来源 我试图想出一个方法,看看地址是否在源代码处发生了更改。如果它改变了,那么将在我们的MySQL数据库上用PHP执行地址验证 在不存储旧提要副本的情况下,我认为最好对提要中的字段进行校验和,并将其与每条记录一起存储。然后在每次馈送之后,它将查看校验和是否发生了变化。这是最好的方法吗?可能已经有一个PHP函数来完成这一切了吗?MySQL中的一些东西呢?谢谢 PHP和MySQL

我有一个用PHP开发的MySQL数据库,它将从每日数据源执行地址验证。我们会在我们这边解决更正问题,因为我们无法控制提要的来源

我试图想出一个方法,看看地址是否在源代码处发生了更改。如果它改变了,那么将在我们的MySQL数据库上用PHP执行地址验证


在不存储旧提要副本的情况下,我认为最好对提要中的字段进行校验和,并将其与每条记录一起存储。然后在每次馈送之后,它将查看校验和是否发生了变化。这是最好的方法吗?可能已经有一个PHP函数来完成这一切了吗?MySQL中的一些东西呢?谢谢

PHP和MySQL都支持运行成本低廉的;至少比像MD或SHA这样的散列算法要低。

PHP和MySQL都支持运行成本低廉的;至少比像MD或SHA这样的散列算法要低。

crc32可能是您想要的

在php中: 在Mysql中

crc32可能比SHA1或MD5更适合进行简单比较/数据完整性:
crc32可能是您想要的

在php中: 在Mysql中

crc32可能比SHA1或MD5更适合进行简单比较/数据完整性:

您可以使用各种散列方法,md5或sha都可以,您需要在数据库中存储要比较的散列字符串, 理想情况下,你会想做类似的事情

if (sha1(strtoupper($list_of_values) )=== $stored_hashstring){
    //skip
}else{
    //update
}

根据您可能需要在字符串上添加额外解析的数据,例如:删除空格等,您可以使用各种散列方法,md5或sha都可以,您需要在数据库中存储要比较的散列字符串, 理想情况下,你会想做类似的事情

if (sha1(strtoupper($list_of_values) )=== $stored_hashstring){
    //skip
}else{
    //update
}

根据数据的不同,您可能需要在字符串上添加额外的解析,例如:删除空格等

PHP和MySQL都有md5、sha1等。。。如果您需要快速检查更改。对于地址字段,计算md5可能比比较字符串更昂贵为了澄清,在计算校验和或哈希后,您仍然需要进行字符串比较,因此,除非这些字段相当大,计算和比较比直接比较要昂贵。你有什么理由不只是在本地存储地址,而只是进行字符串比较吗?@meagar有我们的MySQL数据库,它将被地址更正,然后是每日提要。要对字段进行字符串比较以查看它们是否更改,需要存储以前的每日提要,这是一个重复的数据库。问题是,不管街道地址、城市、州或邮政编码是否发生了变化,只要有什么变化,就需要运行新的地址验证。这就是为什么我考虑只存储这些字段的校验和。PHP和MySQL都有md5、sha1等。。。如果您需要快速检查更改。对于地址字段,计算md5可能比比较字符串更昂贵为了澄清,在计算校验和或哈希后,您仍然需要进行字符串比较,因此,除非这些字段相当大,计算和比较比直接比较要昂贵。你有什么理由不只是在本地存储地址,而只是进行字符串比较吗?@meagar有我们的MySQL数据库,它将被地址更正,然后是每日提要。要对字段进行字符串比较以查看它们是否更改,需要存储以前的每日提要,这是一个重复的数据库。问题是,不管街道地址、城市、州或邮政编码是否发生了变化,只要有什么变化,就需要运行新的地址验证。这就是为什么我考虑只存储这些字段的校验和。我认为您高估了运行SHA1的费用。它没有那么贵,但比crc贵得多。简单的测试表明,crc在同一个字符串上的运行速度至少是SHA1的3-4倍。我的测试表明,对不同长度的字符串进行长达100000个字符的哈希运算的两次迭代之间的差异可以忽略不计。不管怎样,任何一个函数的性能都无关紧要,甚至一点也不重要。重要的是哪项工作做得更好。我认为你高估了运行SHA1的费用。它没有那么贵,但比crc贵得多。简单的测试表明,crc在同一个字符串上的运行速度至少是SHA1的3-4倍。我的测试表明,对不同长度的字符串进行长达100000个字符的哈希运算的两次迭代之间的差异可以忽略不计。不管怎样,任何一个函数的性能都无关紧要,甚至一点也不重要。重要的是哪项工作做得更好。