日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

SQL Server 2008中的代碼安全(六):對稱密鑰

系統(tǒng) 2112 0

SQL Server 2008中SQL應(yīng)用系列--目錄索引

證書和非對稱密鑰使用數(shù)據(jù)庫級(jí)的內(nèi)部公鑰加密數(shù)據(jù),并且使用數(shù)據(jù)庫級(jí)內(nèi)部私鑰解密數(shù)據(jù)。而對稱密鑰相對簡單,它們包含一個(gè)同時(shí)用來加密和解密的密鑰。困此,使用對稱密鑰加密數(shù)據(jù)更快,并且用在大數(shù)據(jù)時(shí)更加合適。盡管復(fù)雜度是考慮使用它的因素,但它仍然是一個(gè)很好的加密數(shù)據(jù)的選擇。

我們看一組例子:

示例一、創(chuàng)建對稱密鑰

對稱密鑰的特性是:在數(shù)據(jù)庫會(huì)話中使用它對數(shù)據(jù)進(jìn)行加密和解密前必須首先打開。

創(chuàng)建對稱密鑰使用如下命令:

CREATE SYMMETRIC KEY 創(chuàng)建對稱密鑰。( http://msdn.microsoft.com/en-us/library/ms188357.aspx

示例二、查看當(dāng)前數(shù)據(jù)庫中的對稱密鑰

使用目錄視圖sys.symmetric_keys( http://msdn.microsoft.com/en-us/library/ms189446.aspx )來查看。

示例三、修改非對稱密鑰的加密方式

你可以使用ALTER SYMMETRIC KEY( http://technet.microsoft.com/en-us/library/ms189440.aspx )命令修改對稱密鑰的加密方式。但執(zhí)行前必須使用OPEN SYMMETRIC KEY( http://msdn.microsoft.com/en-us/library/ms190499.aspx )命令打開它。

示例四、使用對稱密鑰對數(shù)據(jù)進(jìn)行加密和解密

1、為了使用對稱密鑰對數(shù)據(jù)進(jìn)行加密,必須首先打開它,然后使用函數(shù)EncryptByKey 加密數(shù)據(jù)。( http://msdn.microsoft.com/zh-cn/library/ms174361.aspx )

2、使用DecryptByKey來解密使用對稱密鑰加密的數(shù)據(jù)。注意DecryptByKey不像甩EncryptByKey,無須使用對稱密鑰GUID。因此,為了解密,必須打開正確的對稱密鑰會(huì)話,否則會(huì)顯示null。

下面是一個(gè)例子:

查看未加密的數(shù)據(jù):

至此,好像已經(jīng)大功告成了,別,千萬別高興得太早!

這里有個(gè)問題,如果惡意用戶不知道CustomerID=13的PasswordHintAnswer列的真實(shí)值,但知道CustomerID=14的PasswordHintAnswer列的真實(shí)值,則完全可以通過 惡意替換 PasswordHintAnswer列而繞過加密!! 3w@live.cn 此時(shí),我們索性連 CustomerID列作為驗(yàn)證列也一起加密,以絕后患 !

注意: 加密的驗(yàn)證列 也可以由 另一個(gè)相關(guān)表的列 作為參數(shù)傳入。

看一個(gè)完整的例子:

惡意替換開始:

此時(shí),我們再查看:

郎勒個(gè)郎!爽吧!雖然復(fù)制了相同的二進(jìn)制數(shù)據(jù),可是讀取結(jié)果令攻擊者大失所望啊!

示例五、刪除對稱密鑰

命令:DROP SYMMETRIC KEY 刪除指定的對稱密鑰( http://technet.microsoft.com/en-us/library/ms182698.aspx )

例子:

注意:如果加密密鑰打開沒有關(guān)閉,則drop失敗。

小結(jié):

1、本文主要介紹對稱密鑰的創(chuàng)建、刪除、查看以及用它來修改加密方式、進(jìn)行數(shù)據(jù)的加密和解密。

2、對稱密鑰的特性是:在數(shù)據(jù)庫會(huì)話中使用它對數(shù)據(jù)進(jìn)行加密和解密前必須首先打開。

3、對稱密鑰可用于大數(shù)據(jù)的加密。

下文將主要介紹證書加密(Certificate Encryption)

邀月注:本文版權(quán)由邀月和CSDN共同所有,轉(zhuǎn)載請注明出處。
助人等于自助! 3w@live.cn

SQL Server 2008中的代碼安全(六):對稱密鑰加密


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 太和县| 南乐县| 镇远县| 洛宁县| 吴江市| 镇康县| 新疆| 拉萨市| 涡阳县| 镇远县| 田林县| 滨海县| 南华县| 伊吾县| 田林县| 保康县| 大洼县| 哈巴河县| 清苑县| 绍兴县| 秦皇岛市| 大同县| 南京市| 汶上县| 普宁市| 龙岩市| 荣昌县| 拜泉县| 贡觉县| 晋宁县| 伊川县| 汉寿县| 日喀则市| 华蓥市| 四会市| 饶阳县| 西乌| 永昌县| 榆中县| 科尔| 盐山县|