在SQL Server中创建ASCII SHA-512哈希值

本文关键字:ASCII SHA-512 哈希值 创建 SQL Server | 更新日期: 2023-09-27 18:06:42

我正在研究一个c#项目,其中我们有一个文本值放在SQL Server数据库表中的nvarchar字段中。使用下面的代码对值进行散列:

byte[] data = Encoding.ASCII.GetBytes("valuetohash");
byte[] bytes = new SHA512Managed().ComputeHash(data);
String result = Encoding.ASCII.GetString(bytes);

现在我需要使用T-SQL复制创建相同的值。

谁能告诉我怎么做?

I tried HASHBYTES ( 'SHA2_512', 'valuetohash' )

,但缺少ASCII编码并产生不同的值。

在SQL Server中创建ASCII SHA-512哈希值

您需要将二进制数据转换为Base64字符串,您可以尝试使用convert函数:

SELECT CONVERT(varchar(max), HASHBYTES ('SHA2_512', 'valuetohash') ,2)