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

Sql server 如何使用ASP Classic对SQL Server数据库中的高度敏感信息进行加密和解密?,sql-server,encryption,asp-classic,Sql Server,Encryption,Asp Classic,我一直在检查stackoverflow上的各种问题,当然还有谷歌,但我真的找不到任何具体的解决方案: 如何在ASP Classic中创建函数来加密和解密SQL Server数据库中的高度敏感信息?比如外汇。社会保险号码或类似的号码 (或者可以在我的SQL字符串中执行此操作?) 是的,我知道如何使用ASP创建函数;) 不,我只是不能用SHA或MD5散列信息,因为它们只有一种工作方式。我需要它双向工作 越安全,越快乐!:) 编辑: 后来我发现: 但我真的不知道这是否足够安全,是否可以?我可以看到,

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

如何在ASP Classic中创建函数来加密和解密SQL Server数据库中的高度敏感信息?比如外汇。社会保险号码或类似的号码

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

是的,我知道如何使用ASP创建函数;)

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

越安全,越快乐!:)

编辑:
后来我发现:


但我真的不知道这是否足够安全,是否可以?我可以看到,这是双向的?

允许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

您可以在此处找到这方面的详细概述

您可以在VBScript中成功地使用Rinjdael密码。密钥函数是EncryptData()和DecryptData()


这对我来说似乎足够安全了。显然,你会想把钥匙保密。global.asa中的应用程序变量可能是存储此内容的好地方(因为通常在那里可以找到连接字符串等)。

为什么要尝试使用经典ASP进行任何安全操作?因为我将在6个月后访问ASP.NET,在此之前我需要使其尽可能安全…如果您只需要6个月的时间,4Guys解决方案已经足够了。事实上,这是一个非常好的永久解决方案。如果密钥与加密数据位于同一台服务器上,那么在直接对SQL server进行暴力攻击的情况下,它不会被利用吗?