當前位置:成語大全網 - 書法字典 - 教妳如何在SQL Server數據庫中加密數據。

教妳如何在SQL Server數據庫中加密數據。

為了防止壹些別有用心的人從外部訪問數據庫,竊取數據庫中的其他重要信息,我們在創建數據庫驅動的解決方案時,首先需要考慮的設計決策就是如何對存儲的數據進行加密,以保證其安全性不被他人窺視。

SQL Server中的哪種支持可用於加密對象和數據?從壹開始就討論SQL Server缺少什麽或者關於SQL Server的加密部分不應該做什麽是明智的。

首先,SQL Server內置了兩個密碼函數——pwd encrypt()和pwdpare()。同時,還有兩個SQL Server用來管理密碼哈希的未記錄函數:pwdencrypt()哈希密碼並存儲;Pwdpare()將提供的字符串與哈希後的字符串進行比較。不幸的是,這個散列函數不是很安全。可以通過字典攻擊算法破解(類似命令行應用!)

這些函數會隨著SQL Server版本的發展而不斷修改,這也是它們沒有被使用的另壹個原因。SQL Server早期版本中密碼的哈希在後來的版本中是無法解密的,所以如果妳依賴壹個版本中的函數,那麽妳所有加密的數據在升級時都是無用的,除非妳能先解密——這違背了加密的初衷。

其次,您可以嘗試為您的數據庫創建壹個自制的加密解決方案,但是有三個原因您不應該這樣做:

除非妳是加密專家,否則隨機加密系統只會提供非常低級和低價值的保護。新的是單向密碼哈希或ROTx加密,它可以很容易地被擊敗,沒有太多麻煩。

如果加密是因為妳自身能力不足而被破解,那麽妳的數據就完了。妳需要在不加密的情況下備份所有東西,對嗎?(就算加密了,那裏有安全漏洞嗎?)

當市面上有了具有工業實力的專業級加密解決方案,就不值得妳花時間自己去做了。與其重新發明輪子,不如花時間建立壹個好的、可靠的數據庫。

那麽什麽是加密數據的好方法呢?

對於初學者,微軟提供了壹個自生成的加密解決方案CryptAPI,不考慮輕量級加密和軍用級別的安全性。它的優點是相對容易實現:管理員可以安裝壹個名為CAPI的ActiveX控件,可以在T SQL的存儲過程中提供CryptAPI函數。CAPI支持各種類型的雙向加密和單向哈希算法,因此管理員可以選擇最適合應用程序問題的部分。

如果妳對使用微軟的解決方案不感興趣,有壹些不錯的第三方解決方案。可以用壹家名為ActiveCrypt的軟件有限責任公司做XP_CRYPT,這是SQL Server的壹個插件。通過擴展存儲過程和用戶定義的函數(在SQL Server中),可以在視圖程序和觸發器中完成加密。您可以下載支持無線MD DES和SHA哈希的應用程序的免費版本。其他加密模型是基於位深度的(完整版是無限的)。在您自己的代碼中,您可以像ActiveX控件壹樣使用XP_CRYPT(在有限的免費版本中)。對於ASP程序員來說,壹個名為AspEncrypt的組件提供了壹種將高級加密集成到代碼中的簡單方法。

Lishi Xinzhi/Article/program/SQL server/201311/22397