天天看點

隔牆有耳之資料在存儲的時候對資料加密

               隔牆有耳之資料在存儲的時候對資料加密

下面來介紹一下,資料在存儲的時候對資料加密。

我們先來采用證書來對資料加密,指令如下:

declare @a varchar(100),@b varbinary(max)

set @a='yonglei hao!!'加密内容

set @b=encryptbycert (cert_id ('cer2'),@a)

然後輸入

select cast(decryptbyasymkey (cert_id('asy2'),@b,N'Ccjsj1200') as varchar(100))

可以把我們解密的内容以明文方式顯示出來

在上面我們為什麼要用varbinary(max)呢?

因為在加密以後我們不知道它是具有多少位的字元串,是以我們要用最大值的。

<a href="http://liuyonglei.blog.51cto.com/attachment/200906/29/501877_1246289594PsaU.jpg"></a>

在上篇博文中沒有介紹關于非對稱的一些東西,現在就來看一下非對稱密鑰的介紹

create asymmetric key asy1 with algorithm=RSA_2048

建立非對稱密鑰

create asymmetric key asy2 with algorithm=RSA_2048 Encryption by password='Ccjsj1200'

select * from sys.asymmetric_keys

采用密碼建立非對稱密鑰

alter asymmetric key asy2 with private key (decryption by password='Ccjsj1200',encryption by password='Ccjsj1200')

修改密鑰的密碼,這種方法是不能采用備份的,下面采用另外一種方法建立。

用sn.exe –k這個指令如圖:

<a href="http://liuyonglei.blog.51cto.com/attachment/200906/29/501877_1246289598s9xw.jpg"></a>

<a href="http://liuyonglei.blog.51cto.com/attachment/200906/29/501877_1246289602vFOK.jpg"></a>

密鑰寫入完成後,利用這個密鑰來生成非對稱密鑰。

create asymmetric key asy3 from file='c:\bak\lyl.key' encryption by password='Ccjsj1200'

利用密鑰來生成非對稱密鑰

<a href="http://liuyonglei.blog.51cto.com/attachment/200906/29/501877_1246289604Pnq2.jpg"></a>

例子:對yongleihao!!就行加密,顯示加密後的資料并解密。

set @a='yongleihao!!'

set @b=encryptbyasymkey (asymkey_id('asy2'),@a)

select @b

select cast(decryptbyasymkey (asymkey_id('asy2'),@b,N'Ccjsj1200') as varchar(100))

如圖:

<a href="http://liuyonglei.blog.51cto.com/attachment/200906/29/501877_1246289608L5eP.jpg"></a>

<a href="http://liuyonglei.blog.51cto.com/attachment/200906/29/501877_1246289612RIyL.jpg"></a>

資料庫的安全性就介紹到這了,完了。

本文轉自 liuyonglei 51CTO部落格,原文連結:http://blog.51cto.com/liuyonglei/171016,如需轉載請自行聯系原作者