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?SHA256 dans une procédure stockée T-SQL
Pour des raisons de déploiement, je préfère dans TSQL.
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?SHA256 dans une procédure stockée T-SQL
Pour des raisons de déploiement, je préfère dans TSQL.
Mise à jour: SQL Server 2012 HASHBYTES() prend désormais en charge SHA-256 et SHA-512 prêt à l'emploi.
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 de l'implémenter en tant que CLR Stored procedure.
Voici un exemple réel, qui utilise simplement les types de .NET Framework: Let's Hash a BLOB
-t-il d'être SHA-256. Il y a une fonction SQL HASHBYTES()
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.)
Ajouté dans le cas (comme moi) je cherchais une fonction native HASH dans le serveur SQL et ils rencontrent cette question. Cela impliquerait que le CLR est le seul moyen de fournir une fonction HASH. – Guy
Exemple CLR: http://stackoverflow.com/questions/12416249/hashing-a-string-with-sha256 –
SHA256, SHA512 dans SQL Server 2008 ou SQL Server 2005!
Vous pouvez le faire si vous utilisez 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)
Où pouvez-vous trouver cette DLL? – tigeryan
Vous pouvez l'obtenir ici: http://www.innoya.com/Tools/fnEnCryptSHA.aspx – chrilith
Je ne savais pas que vous pourriez appeler un .dll si facilement via SQL Server. Vous pouvez également lancer votre propre méthode de hachage SHA-256 dans une classe/.dll et l'appeler via SQL. Très cool, merci pour la réponse. – clamum
Salut Mitch merci pour cela. Pour des raisons de déploiement, je préférerais ça dans TSQL. Je vais clarifier. – WOPR
Il va être beaucoup plus difficile d'écrire et moins performant moins bien dans TSQL ... –
Juste un FYI, SQL 2012 a ajouté le support pour SHA-256. Vous venez de passer SHA_256 comme l'algorithme. – Oppositional