データ暗号化(SQLServer)

SQLServerで、対象キーの暗号化のサンプルです。
マスターキーは省略してます。(^^ゞ


--証明書発行
CREATE CERTIFICATE [SYOMEI]
ENCRYPTION BY PASSWORD = 'Password' --証明書パスワード
WITH SUBJECT = 'SYO',
START_DATE = '10/31/2007', --証明書有効開始日
EXPIRY_DATE = '10/31/2009'; --証明書終了日
GO

--対称キー発行(#付なので一時対称キー)
CREATE SYMMETRIC KEY #DESTEST
WITH ALGORITHM=TRIPLE_DES ENCRYPTION
BY CERTIFICATE [SYOMEI]
GO

--対称キーを開く(#付なので一時対称キー)
OPEN SYMMETRIC KEY #DESTEST DECRYPTION BY
CERTIFICATE [SYOMEI] WITH PASSWORD = 'Password'
GO

--対称キーのGUID取得
DECLARE @KEYGUID UNIQUEIDENTIFIER
SET @KEYGUID = key_GUID('#DESTEST')
SELECT @KEYGUID

--暗号化してデータ保存
INSERT [T1](A) VALUES( ENCRYPTBYKEY(@KEYGUID,'ABCDE') )


--暗号化したまま表示
SELECT * FROM [T1]
--復号化して表示
SELECT CONVERT(varchar, DecryptByKey(A)) AS 'A' FROM [T1]

--対称キー削除
DROP SYMMETRIC KEY #DESTEST

--証明書削除
DROP CERTIFICATE [SYOMEI]