在 SQL Server 中使用 c# 创建哈希是不同的。为什么不一样?
using (SHA1Managed sha1 = new SHA1Managed())
{
Guid g = new Guid("81FE483B-39ED-4052-8FFC-55A710907D9B");
var appGateId = g.ToString();
var hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(appGateId));
var sb = new StringBuilder();
foreach (byte b in hash)
{
sb.Append(b.ToString("x2"));
}
Console.WriteLine(sb.ToString());
}
这里的结果是ebb52fefab48f428b6ee03174276c8ade0b4ef1a
。
使用 SQL Server 和此代码:
declare @a uniqueidentifier = '81FE483B-39ED-4052-8FFC-55A710907D9B', @b nvarchar(50)
select @b = CONVERT(nvarchar(50), @a)
select convert(varchar(50), hashbytes('SHA1', @b), 2)
结果是CC34B1E702F6E7FE0EE92ED4D5390BB4765B9A21