我有一个使用SQL Server 2008的ASP.NET Web应用程序。
当通过Web应用程序提交邮政编码时,它会被加密,然后加密的值被发送到数据库并插入到表格中。
我现在需要通过搜索邮政编码的部分内容,找到一种从网络应用程序查询这些邮政编码的方法,如:
SELECT PostCode
FROM Table
WHERE PostCode LIKE @PostCode + '%'
如果不在数据库中存储解密功能,我该怎么做? (我认为这对安全性有害吗?)
答案 0 :(得分:4)
这里真的只有两种选择。
将您提交的数据加密到您的选择查询。这样您就可以比较两个不同的加密值。当然,如果你使用盐,这将失败..
不要在存储之前加密值。相反,只需正常保存即可。如果确实需要加密,请使用SQL Server中可用的加密方法自动加密列:http://msdn.microsoft.com/en-us/library/ms179331.aspx
加密的目的主要是保护“静止”信息。 SQL服务器可以自己完成。
答案 1 :(得分:1)
第一种方式
您可以从ASP.Net应用程序发送数据库中的加密邮政编码,并使用下面的加密邮政编码进行查询....
SELECT PostCode
FROM Table
WHERE PostCode LIKE @EncryptedPostCode + '%'
第二种方式
有关查询加密列的文章。
答案 2 :(得分:0)
所以,你将“Court”发送到你的数据库,它会存储类似“#&%^^”的内容,你想在DB上查找字符串“Court”吗?
我认为唯一的方法是加密Web应用程序上的搜索字符串(因为您已经插入它)并将其与数据库上的加密版本进行比较。