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

cra*_*ake 2 c# t-sql sql-server

我正在开发一个C#项目,我们有一个文本值放在nvarchar字段的SQL Server数据库表中.使用以下代码对值进行哈希处理:

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

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

谁能告诉我怎么做到这一点?

我试过了 HASHBYTES ( 'SHA2_512', 'valuetohash' )

但是缺少ASCII编码并产生不同的值.

Tri*_*fon 6

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

SELECT CONVERT(varchar(max), HASHBYTES ('SHA2_512', 'valuetohash') ,2) 
Run Code Online (Sandbox Code Playgroud)