我一直在检查stackoverflow上的各种问题,当然还有谷歌,但我真的找不到这个问题的具体解决方案:
如何在ASP Classic中创建一个函数来加密和解密SQL Server数据库中的高度敏感信息?像fx。社会安全号码或类似的东西?
(或者可以在我的SQL字符串中执行吗?)
是的,我确实知道如何用ASP创建一个函数;)
不,我只是不能用SHA或MD5散列信息,因为它们只能以一种方式工作。我需要双向工作!
越安全,越快越好! :)
修改
之后我发现了这个:
http://www.4guysfromrolla.com/webtech/010100-1.shtml
但我真的不知道这是否足够安全并会这样做?其中我可以看到,它是双向的?
答案 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
找到对此的详细概述
答案 1 :(得分:1)
您可以使用this library在VBScript中成功使用Rinjdael密码。关键功能是EncryptData()和DecryptData()。
对我来说似乎足够安全。显然你会想要保密你的密钥。 global.asa中的应用程序变量可能是存储它的好地方(因为通常是连接字符串等的位置)。