SHA256 procédure stockée T-SQL
-
23-10-2019 - |
Question
Est-il possible de générer un hachage SHA-256 d'une chaîne à partir d'une procédure stockée dans Sql Server 2008?
Pour des raisons de déploiement, je préférerais en TSQL.
La solution
Mise à jour : SQL Server 2012 HASHBYTES () supporte maintenant SHA-256 et SHA-512 hors de la boîte.
HASHBYTES ( '<algorithm>', { @input | 'input' } ) <algorithm>::= MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512
Bien sûr. Vous pouvez le faire en TSQL, mais il sera beaucoup plus facile à mettre en œuvre en tant que CLR procédure stockée .
Voici un exemple réel, qui utilise simplement les types .NET Framework: Let Hash un blob
Autres conseils
SHA256, SHA512 dans SQL Server 2008 ou SQL Server 2005!
Vous pouvez le faire si vous utilisez le fnEnCryptSHA.dll !!
USE [master] GO
EXEC sp_configure 'clr enabled', 1 GO RECONFIGURE GO
CREATE ASSEMBLY InnoDll FROM 'C:\sqltip\fnEnCryptSHA.dll' WITH PERMISSION_SET= SAFE GO
CREATE FUNCTION dbo.fnGetStringToSha256 (@Str nvarchar(1000)) RETURNS varbinary(8000) AS EXTERNAL NAME InnoDll.fnEnCryptSHA.GetStringToSha256 GO
CREATE FUNCTION dbo.fnGetBinaryToSha256 (@Str varbinary(8000)) RETURNS varbinary(8000) AS EXTERNAL NAME InnoDll.fnEnCryptSHA.GetBinaryToSha256 GO
SELECT dbo.fnGetStringToSha256('abc')
SELECT dbo.fnGetBinaryToSha256(0x9F04F41A848514162050E3D68C1A7ABB441DC2B5)
-t-il d'être SHA-256. Il y a une fonction HASHBYTES()
SQL qui peut faire SHA, SHA1, MD5 etc.
(Bien sûr cela dépend si vous voulez juste une représentation de hachage d'une valeur, ou de stocker en toute sécurité des données précieuses.)