C#SHA-256 vs SQL Server SHA2

时间:2017-03-29 10:26:51

标签: c# sql-server sha

我的C#代码产生与在线哈希计算器相同的哈希值,以及我的旧基本库和其他代码:

var sha256 = SHA256.Create();
var hashed = sha256.ComputeHash(Encoding.UTF8.GetBytes(_checksum));
_checksum = BitConverter.ToString(hashed).Replace("-", "").ToLower();

例如,

"test" -> "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"

如果我使用

,我必须直接从SQL Server命令重现相同的哈希
SELECT master.dbo.fn_varbintohexsubstring(0, HashBytes('SHA2_256', 'test'), 1, 0)
=> "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"

但是如果我尝试使用其中一个列,则会产生不同的结果:

SELECT master.dbo.fn_varbintohexsubstring(0, HashBytes('SHA2_256', t.sMANAGER), 1, 0)
FROM EV_AGENCY t
=> "fe520676b1a1d93dabab2319eea03674f3632eaeeb163d1e88244f5eb1de10eb"

该列为nvarchar,整理为French_CI_AI

我认为我必须正确地投射我的专栏,所以我尝试施放,转换等没有成功。

有人可以帮我吗?

谢谢!

0 个答案:

没有答案