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)