Я следую простому примеру из этого вопроса :
DECLARE @HASHBYTES VARBINARY(128) = hashbytes('sha2_256', 'secret')
SELECT cast(N'' as xml).value('xs:base64Binary(sql:variable("@HASHBYTES"))', 'varchar(128)');
Он возвращает правильное хешированное значение: K7gNU3sdo+OL0wNhqoVWhr3g6s1xYv72ol/pe/Unols=
Теперь я попытался объявить секрет как переменная в соответствии с документацией Microsoft Hashbytes пример :
DECLARE @HashThis nvarchar(32);
SET @HashThis = CONVERT(nvarchar(32),'secret');
DECLARE @HASHBYTES VARBINARY(128) = hashbytes('sha2_256', @HashThis)
SELECT cast(N'' as xml).value('xs:base64Binary(sql:variable("@HASHBYTES"))', 'varchar(128)');
он возвращает неправильный ha sh:
s6jeuSg7FUrj9WBqMj0GbSRudEDi2NTJqHqmG5UYOiY=
Есть ли способ объявить секрет как переменную для получить правильный ha sh?
Я новичок в этом материале Hashbytes в SQL. Я использую его на SQL Server 2017.