忍者ブログ

[PR]

2024年11月21日
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

SQLのデータ暗号化

2009年06月08日
テーブルデータを暗号化する方法は下記の通り。
マスターキーは省略します。
 
--証明書発行
CREATE CERTIFICATE [SYOMEI]
   ENCRYPTION BY PASSWORD = 'password' --証明書パスワード
   WITH SUBJECT = 'SYO',
   START_DATE = '10/01/2007', --証明書有効開始日
   EXPIRY_DATE = '10/31/2009'; --証明書終了日
GO
--対称キー発行(#付にすると一時対称キー)
CREATE SYMMETRIC KEY DESTEST --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]
 
--暗号化一覧
select * from sys.symmetric_keys;

--対称キー削除
DROP SYMMETRIC KEY DESTEST
 
--証明書削除
DROP CERTIFICATE [SYOMEI]
 
当たり前だが、Passwordは忘れない様に!

拍手[0回]

PR
Comment
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字
Trackback
トラックバックURL: