C#和SQL中的校验和相同

本文关键字:校验和 SQL | 更新日期: 2024-09-22 17:38:35

我想在C#中检索相同的校验和值,而不是使用SQL代码?

目标是在c#中检索相同的值,而不是使用SQL代码。

有可能做到吗?

我找不到任何好的答案来回答我的问题。

http://sqlfiddle.com/#!6/eb6d0/3/0

C#和SQL中的校验和相同

根据这篇旧文章:

SQL Server中内置的CHECKUM函数是建立在一系列4位左旋转异或操作之上的

因此,您可以尝试在C#中实现此算法。

然而,这篇文章指出,从冲突的角度来看,这种方法是不可靠的,所以您可能根本不应该使用这个函数。

我建议使用任何可靠算法的HASHYTES,即MD5,而不是这个CHECKSUM。同时,C#内置了MD5:的函数

byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes("admin@sqlfiddle.com"));

Microsoft要求使用HASHYTES而不是CHECKSUM函数,因为HASHYTes比CHECKSUM更高效。

我不知道CHECKSUM使用的算法是什么,但HASHYTES可以使用这些哈希算法(MD2|MD4|MD5|SHA|SHA1|SHA2_256|SHA2_512)。您可以在C#中使用System.Security.Cryptography.中的HashAlgorithm类轻松地执行相同的操作