2

我想同时拥有 c# 级别和 sql server 2012 级别。

我如何知道 SHA1 实现是否会产生相同的结果?

在我正在做的 sql server 中:

HASHBYTES('SHA1', @data)

我还没有编写我的 c# 函数。

我只是担心如果它们不产生相同的哈希值,我的应用程序会出现一些不一致的情况。

注意: 我将用于创建哈希的列是 datetime、nvarchar 和 int。我必须将这些转换为字符串正确吗?

4

1 回答 1

0

使用此代码不会有任何问题:

    public static byte[] GetHash(string inputString)
    {
        HashAlgorithm algorithm = SHA1.Create();
        return algorithm.ComputeHash(Encoding.Unicode.GetBytes(inputString));
    }

它创建的哈希值与您在SQL Server上创建的哈希值相同:

HASHBYTES('SHA1', CAST(@data AS NVARCHAR(100)))
于 2015-05-19T20:03:51.320 回答