SQL Server 2008 R2 HASHBYTES SHA2 возвращает null

Я пытаюсь использовать HASHBYTES с SHA2_512 как algo. Однако, когда я пытаюсь сделать это в SQL Server Management Studio, все, что я получаю, равно null.

SELECT HASHBYTES('SHA1','test') //works
SELECT HASHBYTES('SHA2','test') //returns null

Что я делаю неправильно?
Есть ли способ просмотреть возвращаемое значение из SELECT HASHBYTES('SHA2', 'test')?

спасибо

Ответы

Ответ 1

Вот небольшой пример с 128, 256 и 512 битами

DECLARE @HashThis nvarchar(4000);
SELECT @HashThis = CONVERT(nvarchar(4000),'This is a sample string');
SELECT HASHBYTES('SHA1', @HashThis);
SELECT HASHBYTES('SHA2_256', @HashThis);
SELECT HASHBYTES('SHA2_512', @HashThis);
GO

Ответ 2

SQL Server поддерживает SHA2 512 в SQL Server 2012+.

SQL Server 2008 R2 и ниже НЕ поддерживают SHA2_512. Здесь HASHBYTES на MSDN.

Ответ 4

SELECT HASHBYTES('SHA2_256','test')  
SELECT HASHBYTES('SHA2_512','test')