原发问问题:
老师您好:
我有一个表格的某一个字段要加密,如员工档的薪资金额及员工姓名,
这两个字段要加密,让其它人员从 ENTERPRISE MANAGER 之中开起的表格看到的内容是一堆乱码,但我在程序之中下 SELECT EMP_ID,NAME,WAGE FROM EMPLOYEES 时显示是正确的数据,我应该如何做呢?有什么特殊的技巧或设定就可以完成吗?
Best Regards
解答:
亲爱的读者您好,很感谢您对于章立民研究室的支持,有关于您提到的问题,回复如下:
Microsoft SQL Server 2000 本身没有内建的功能可以满足您的需要。或许您可以考虑自行撰写加解密机制,当数据写入数据库时,同时将其加密,如此一来,不论是从 ENTERPRISE MANAGER 或是使用程序方式,所查询到的数据皆是加密过的。当您欲将被加密过的数据还原成原始的数据,只需进行解密机制即可。
由上述的讨论,我们可以知道,这样的加解密机制所使用之算法必须是可逆的。接下来,我们讨论什么是可逆的、什么是不可逆的加解密机制。前几年,媒体大肆报导山东大学王教授所破解的 MD5 来说,它就是一个不可逆的(One-Way)加解密机制,也就是说加密之后的密文,无法再据以还原成原本未加密的明文。
至于常见的可逆算法,有 ROT13 ,正因为其算法简单又是可逆,因此您可以在网络上找到为数不少的参考数据。如下所示即是一个可以在 SQL Server 2000 中,免费用于加解密的预存程序:
http://www.sqlservercentral.com/columnists/mcoles/freeencryption.asp
期望此信息对您有所帮助。