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.

Était-ce utile?

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.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top