如何使用ASP Classic加密和解密SQL Server数据库中的高度敏感信息?

时间:2011-11-18 16:47:21

标签: sql-server encryption asp-classic

我一直在检查stackoverflow上的各种问题,当然还有谷歌,但我真的找不到这个问题的具体解决方案:

如何在ASP Classic中创建一个函数来加密和解密SQL Server数据库中的高度敏感信息?像fx。社会安全号码或类似的东西?

(或者可以在我的SQL字符串中执行吗?)

是的,我确实知道如何用ASP创建一个函数;)

不,我只是不能用SHA或MD5散列信息,因为它们只能以一种方式工作。我需要双向工作!

越安全,越快越好! :)

修改
之后我发现了这个:

http://www.4guysfromrolla.com/webtech/010100-1.shtml

但我真的不知道这是否足够安全并会这样做?其中我可以看到,它是双向的?

2 个答案:

答案 0 :(得分:4)

允许SQL Server使用密钥/证书处理加密/解密可能是有益的。这样,您就不必使用ASP进行自己的操作,并且系统的管理将保留在数据本身所在的位置。如果您决定转移到另一个平台,也可以不必更新此过程。

在服务器上创建密钥是一个简单的过程,在这一点之后使用它们也很简单,例如;

加密;

OPEN SYMMETRIC KEY mykey DECRYPTION BY CERTIFICATE [mycert]
UPDATE table SET number = EncryptByKey(Key_GUID('mykey'), @number)

解密;

 OPEN SYMMETRIC KEY mykey DECRYPTION BY CERTIFICATE [mycert]
 SELECT CONVERT(varchar, DecryptByKey(number)) AS number FROM TABLE

可在此处Introduction to SQL Server Encryption

找到对此的详细概述

答案 1 :(得分:1)

您可以使用this library在VBScript中成功使用Rinjdael密码。关键功能是EncryptData()和DecryptData()。

对我来说似乎足够安全。显然你会想要保密你的密钥。 global.asa中的应用程序变量可能是存储它的好地方(因为通常是连接字符串等的位置)。