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.
Ответ 3
<algorithm> :: MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512
per https://msdn.microsoft.com/en-us/library/ms174415.aspx
Ответ 4
SELECT HASHBYTES('SHA2_256','test')
SELECT HASHBYTES('SHA2_512','test')