SQL Server - 请问数据库字段加密问题

 原发问问题:

 

老师您好:

 

我有一个表格的某一个字段要加密,如员工档的薪资金额及员工姓名,

这两个字段要加密,让其它人员从 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

 

期望此信息对您有所帮助。

 

posted on 2007-05-22 15:12  章立民研究室  阅读(8294)  评论(1编辑  收藏  举报

导航