首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SQL Server中,Checksum()、Binary_Checksum()和CHECKSUM_AVG()函数使用哪种算法?

在SQL Server中,Checksum()、Binary_Checksum()和CHECKSUM_AVG()函数使用哪种算法?
EN

Stack Overflow用户
提问于 2018-03-18 14:28:16
回答 1查看 935关注 0票数 3

SQL Server提供了Checksum()Binary_Checksum()CHECKSUM_AVG()函数,用于基于表达式或列列表构建哈希索引。

这对于确定行是否已更改很有帮助。然后,可以使用该机制来识别记录是否已被更新。

我发现了许多冲突的例子,这些冲突是为不同的值生成相同的哈希值。我们如何识别这些函数的碰撞条件。

任何人都必须知道哪种算法或技术用于生成/计算无哈希冲突的哈希?

EN

回答 1

Stack Overflow用户

发布于 2020-06-05 19:49:44

BINARY_CHECKSUM的PHP实现:

代码语言:javascript
复制
$input = 'binary string';
$sum = 0;
for ($i = 0; $i < strlen($input); $i++) {
    $sum = ($sum << 4) ^ ord($in[$i]);
    $sum = ($sum & 0xffffffff) ^ ($sum >> 32);
}
return $sum > 0x7fffffff ? $sum - 0x100000000 : $sum;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49345105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档