I am trying to use HASHBYTES with SHA2_512 as the algo. However when I try to do it in SQL Server Management Studio all that I get is null.
SELECT HASHBYTES('SHA1','test') //works
SELECT HASHBYTES('SHA2','test') //returns null
What am I doing wrong?
Is there a way to view the return value from SELECT HASHBYTES('SHA2', 'test')
?
thanks
SQL Server supports SHA2 512 in SQL Server 2012+.
SQL Server 2008 R2 and below do NOT support SHA2_512. Here's HASHBYTES on MSDN.
<algorithm>::= MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512 per https://msdn.microsoft.com/en-us/library/ms174415.aspx
It is possible to return a
SHA512
hash in SQL Server 2008 if you use a user-defined function (UDF) in CLR. Without including a full explanation of how to do CLR in SQLServer, here are the relevant parts.First, the C# CLR code:
Build your CLR project, which creates a DLL. Now create an assembly in the database for the DLL, and register the function:
Now you can hash any string:
Which returns the hash:
Here a small example with 128, 256 and 512 Bits