Version : 0.3
FileType : DLL
Update Date : 2014年2月17日
License : freeware
Download :
1,155 hit
fnEnCryptSHAはSQL Server 2005, 2008からSHA256, SHA512の暗号化をしてくれるモジュールだ。

MSDN - HASHBYTES (Transact-SQL) : http://msdn.microsoft.com/ja-jp/library/ms174415%28v=sql.110%29.aspx

SHA256, SHA512が利用できるのはSQL SERVER 2012からだ。
SQL SERVER 2005, SQL SERVER 2008にはMD2, MD4, MD5, SHA, SHA1のみ利用できる。

SQL SERVER 2005, SQL SERVER 2008でSHA256及びSHA512のハッシュを利用するには
CLRを利用してDLLを登録し関数を作成して利用するしかない。

じゃ、これからSQL SERVER 2005, SQL SERVER 2008からSHA256及びSHA512を利用してみよう。

WEBからSHA256, SHA512値を取得しよう。


設定方法

1.上記のファイルをダウンロードする。

2.SQL SERVERがインストールされているサーバーのCドライブにinnoyaフォルダを作成後ダウンロードしたfnEnCryptSHA.dllファイルをアップロードしよう。
(そうすると経路はC:\innoya\fnEnCryptSHA.dllになる。)

3.下記のクエリを実行してCLR環境を利用できるようにする。
USE [master]
GO

EXEC sp_configure 'clr enabled', 1
GO
RECONFIGURE
GO

4.ASSEMBLYを登録する。
CREATE ASSEMBLY InnoDll
FROM 'C:\innoya\fnEnCryptSHA.dll'
WITH PERMISSION_SET= SAFE
GO

5.関数(Function)を登録する。
-- 文字をSHA256にハッシュする関数(入力値は1000文字まで。)
CREATE FUNCTION dbo.fnGetStringToSha256 (@Str nvarchar(1000))
RETURNS varbinary(8000)
AS EXTERNAL NAME InnoDll.fnEnCryptSHA.GetStringToSha256
GO

-- バイナリをSHA256にハッシュする関数
CREATE FUNCTION dbo.fnGetBinaryToSha256 (@Str varbinary(8000))
RETURNS varbinary(8000)
AS EXTERNAL NAME InnoDll.fnEnCryptSHA.GetBinaryToSha256
GO

-- 文字をSHA512にハッシュする関数(入力値は1000文字まで。)
CREATE FUNCTION dbo.fnGetStringToSha512 (@Str nvarchar(1000))
RETURNS varbinary(8000)
AS EXTERNAL NAME InnoDll.fnEnCryptSHA.GetStringToSha512
GO

-- バイナリをSHA512にハッシュする関数
CREATE FUNCTION dbo.fnGetBinaryToSha512 (@Str varbinary(8000))
RETURNS varbinary(8000)
AS EXTERNAL NAME InnoDll.fnEnCryptSHA.GetBinaryToSha512
GO

6.これで完了!それでは登録した関数の利用方法について説明する。
--#### 関数テスト ##############################################
USE master
GO

--文字をSHA256にハッシュ
SELECT dbo.fnGetStringToSha256('abc')

--バイナリをSHA256にハッシュ
SELECT dbo.fnGetBinaryToSha256(0x9F04F41A848514162050E3D68C1A7ABB441DC2B5)

--文字をSHA512にハッシュ
SELECT dbo.fnGetStringToSha512('abc')

--バイナリをSHA512にハッシュ
SELECT dbo.fnGetBinaryToSha512(0x9F04F41A848514162050E3D68C1A7ABB441DC2B5)

注意事項

nvarchar型のデータもvarcharに認識されハッシュされます。

SQL SERVER 2012から”test”文字をSHA256ハッシュの結果
varchar 0x9F86D081884C7D659A2FEAA0C55AD015A3BF4F1B2B0B822CD15D6C15B0F00A08
nvarchar 0x9F86D081884C7D659A2FEAA0C55AD015A3BF4F1B2B0B822CD15D6C15B0F00A08

お問い合わせ

このプログラムについてご質問、ご意見がある方はお問い合わせください。

[お問い合わせフォームへ]