摘要:讀者詢問資料庫欄位加密問題
原發問問題:
老師您好:
我有一個表格的某一個欄位要加密,如員工檔的薪資金額及員工姓名,這兩個欄位要加密,讓其他人員從 ENTERPRISE MANAGER 之中開起的表格看到的內容是一堆亂碼,但我在程式之中下 SELECT EMP_ID,NAME,WAGE FROM EMPLOYEES 時顯示是正確的資料,我應該如何做呢?有什麼特殊的技巧或設定就可以完成嗎?
Best Regards
解答:
親愛的讀者您好,很感謝您對於章立民研究室的支持,有關於您提到的問題,回覆如下:
Microsoft SQL Server 2000 本身沒有內建的功能可以滿足您的需要。或許您可以考慮自行撰寫加解密機制,當資料寫入資料庫時,同時將其加密,如此一來,不論是從 ENTERPRISE MANAGER 或是使用程式方式,所查詢到的資料皆是加密過的。當您欲將被加密過的資料還原成原始的資料,只需進行解密機制即可。
由上述的討論,我們可以知道,這樣的加解密機制所使用之演算法必須是可逆的。接下來,我們討論什麼是可逆的、什麼是不可逆的加解密機制。前幾年,媒體大肆報導山東大學
於常見的可逆演算法,有 ROT13 ,正因為其演算法簡單又是可逆,因此您可以在網路上找到為數不少的參考資料。如下所示即是一個可以在 SQL Server 2000 中,免費用於加解密的預存程序:
http://www.sqlservercentral.com/columnists/mcoles/freeencryption.asp
期望此資訊對您有所幫助。
章立民研究室