我想在C#中檢索相同的校驗和值而不是使用SQL代碼?在C#和SQL中的相同的校驗和
目標是在c#中檢索相同的值而不是使用SQL代碼。
是否可以做到這一點?
我找不到任何好的答案給我的問題。
http://sqlfiddle.com/#!6/eb6d0/3/0
我想在C#中檢索相同的校驗和值而不是使用SQL代碼?在C#和SQL中的相同的校驗和
目標是在c#中檢索相同的值而不是使用SQL代碼。
是否可以做到這一點?
我找不到任何好的答案給我的問題。
http://sqlfiddle.com/#!6/eb6d0/3/0
根據這個老article:
內置在SQL Server CHECKUM功能是建立在留下了一系列4位的旋轉XOR運算
所以你可以嘗試在C#中實現這個算法。
但是,該文章指出,從碰撞的角度來看這種方法是不可靠的,所以可能根本不應該使用這個函數。
我會建議使用HASHBYTES與任何可靠的算法,即MD5而不是這個CHECKSUM。同時,C#有built in functions for MD5:
byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes("[email protected]"));
微軟的要求是使用HASHBYTES而不是校驗功能,因爲HASHBYTES比Checksum方式更有效。
我不知道CHECKSUM使用的算法是什麼,但HASHBYTES可以使用這些散列算法(MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512)。你可以很容易地用System.Security.Cryptography中的HashAlgorithm類在C#中做同樣的事情。
不知道答案,但我很好奇,你爲什麼需要這個? –
創建臨時主鍵 –
您可以嘗試查看'HASHBYTES'功能。這個可能更可靠,更容易在C#中實現。 –