gpt4 book ai didi

c# - SQL bigint 哈希匹配 c# int64 哈希

转载 作者:太空狗 更新时间:2023-10-29 17:50:51 27 4
gpt4 key购买 nike

<分区>

我正在尝试创建一个通用哈希算法,将字符串哈希为 64 位 int。

我能够正确地散列字符串:数据库:

select  
convert
(
varchar(64),
HASHBYTES
(
'SHA1',
'google.com'
),
2
)

返回 BAEA954B95731C68AE6E45BD1E252EB4560CDC45

C#

    System.Security.Cryptography.SHA1 c = System.Security.Cryptography.SHA1.Create();
System.Text.StringBuilder sb = new StringBuilder();
byte[] b = c.ComputeHash(Encoding.UTF8.GetBytes("google.com"));
for (int i = 0; i < b.Length;i++ )
{
byte by = b[i];
sb.Append(by.ToString("x2").ToUpper());
}

return sb.ToString();

返回 BAEA954B95731C68AE6E45BD1E252EB4560CDC45

但是,当我转换为 bigint/long 时,值不匹配:数据库:

select  
convert
(
bigint,
HASHBYTES
(
'SHA1',
'google.com'
)
)

返回 2172193747348806725

c#:

    System.Security.Cryptography.SHA1 c = System.Security.Cryptography.SHA1.Create();
byte[] b = c.ComputeHash(Encoding.UTF8.GetBytes("google.com"));
return BitConverter.ToInt64(b, 0);

返回 7501998164347841210

关于如何让这些数字匹配有什么想法吗?

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com