11

Sql Server 2008のストアドプロシージャから文字列のSHA-256ハッシュを生成することは可能ですか?

展開上の理由から、TSQLでの使用をお勧めします。

4

3 に答える 3

24

更新: SQL Server 2012 HASHBYTES()は、すぐに使用できるSHA-256 および SHA-512 をサポートするようになりました。

HASHBYTES ( '<algorithm>', { @input | 'input' } )

<algorithm>::= MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512

もちろん。TSQL で実行できますが、CLR ストアド プロシージャとして実装する方がはるかに簡単です。

.NET Framework 型を単純に使用する実際の例を次に示します。BLOB をハッシュしましょう

于 2010-06-02T03:29:57.763 に答える
4

SHA256、SQL SERVER 2008 または SQL SERVER 2005 の SHA512!

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)
于 2013-10-08T09:07:58.117 に答える
0

SHA-256 である必要がありますか。HASHBYTES()SHA、SHA1、MD5などを行えるSQL関数があります。

(もちろん、値のハッシュ表現が必要なのか、貴重なデータを安全に保存したいのかによって異なります。)

于 2011-05-13T12:15:50.923 に答える