證書可以在數據庫中加密和解密數據。證書包含密鑰對、關于證書擁有者的信息、證書可用的開始和結束過期日期。證書同時包含公鑰和密鑰,前者用來加密,后者解密。SQL Server可以生成它自己的證書,也可以從外部文件或程序集載入。因為可以備份然后從文件中載入它們,證書比非對稱密鑰更易于移植,而非對稱密鑰卻做不到。這意味著可以在數據庫中方便地重用同一個證書。
注意:證書和非對稱密鑰同樣的消耗資源。
我們看一組例子:
示例一、創建數據庫證書
創建數據庫證書:CREATE SYMMETRIC KEY ( http://msdn.microsoft.com/en-us/library/ms187798.aspx )
示例二、查看數據庫中的證書
使用目錄視圖sys.certificates( http://msdn.microsoft.com/en-us/library/ms189774.aspx )來查看。
示例三、備份和還原證書
創建證書后,也可以使用BACKUP CERTIFICATE( http://msdn.microsoft.com/en-us/library/ms178578.aspx )命令備份到文件,為了安全地保存或在其他數據庫中還原它。
示例四、管理證書的私鑰
使用ALTER CERTIFICATE( http://msdn.microsoft.com/en-us/library/ms189511.aspx )命令為證書增加或刪除私鑰。這個命令允許刪除私鑰(默認通過數據庫主密鑰時行加密)、增加私鑰或修改私鑰的密碼。
示例五、使用證書加密和解密 。
使用函數EncryptByCert加密數據。( http://msdn.microsoft.com/zh-cn/library/ms174361.aspx )
下面是一個例子:
示例六、使用對稱密鑰對數據進行加密和解密 。
在前面的文章中,你已經看到打開用非對稱密鑰加密的對稱密鑰的演示,它分兩個步驟,首先用OPEN SYMMETRIC KEY命令,然后是實際的DecryptByKey函數調用。SQL Server也提供了能夠將這兩個步驟合二為一的額外的解密函數:DecryptByKeyAutoAsymKey( http://msdn.microsoft.com/en-us/library/ms365420.aspx )和DecryptByKeyAutoCert( http://msdn.microsoft.com/en-us/library/ms182559.aspx )
此時,使用DecryptByKeyAutoAsymKey解密數據,只需要一個操作
小結:
1、本文主要介紹證書的創建、刪除、查看以及用它來修改加密方式、進行數據的加密和解密。
2、證書加密跟非對稱密鑰加密相對對稱密鑰加密更為消耗資源。
下文將主要介紹SQL Server中最為令人鼓舞的透明數據加密(TDE)
助人等于自助! 3w@live.cn
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
