可以在SQL中加密查询字符串吗?

时间:2012-06-13 04:52:05

标签: sql sql-server class encryption

请给我一些建议。我必须使用SQL数据库邮件发送电子邮件。在我的电子邮件中,我必须创建用户可以单击以转到我网站上的产品页面的链接。但是,我需要加密产品的ID,一旦产品页面加载,产品ID的查询字符串就会被解密。

如何将我在网站类中创建的加密算法转换为SQL?我相信解密和加密算法必须相同,以便当用户点击其电子邮件中的链接时,我的页面可以正确解密。我使用的加密类与此链接类似:http://www.codeproject.com/Articles/33350/Encrypting-Query-Strings

非常感谢你的帮助。

PS:我也在asp.net论坛上发布了这个问题。

2 个答案:

答案 0 :(得分:3)

您可以在SQL Server中运行CLR(即.NET)代码。涉及几个步骤,但它首先在Visual Studio中创建“SQL Server”项目,编写代码并将其部署到SQL Server。您还必须使用 sp_configure 在SQL Server中启用CLR功能。

有关详细说明,请参阅此处(MSDN):How to: Create and Run a CLR SQL Server User-Defined Function

答案 1 :(得分:2)

在做了一些研究后,我可以确认CLR是要走的路。如建议的那样,我使用了用户定义的函数CLR。首先,我需要在visual studio中创建CLR项目。这是一个很好的起点,了解它是如何工作的:

http://blog.sqlauthority.com/2008/10/19/sql-server-introduction-to-clr-simple-example-of-clr-stored-procedure/

然后我移动到用户定义的函数,而不是添加CLR存储过程。添加加密类并在用户定义的函数中调用该类。构建和部署。就是这样。

这是另一个有用的链接:

http://channel9.msdn.com/Learn/Courses/SQL2008R2TrainingKit/CLR/CLRIntegrationLab/Exercise-1-Creating-User-Defined-Functions-Using-SQL-CLR

感谢dbaseman指出这一点。

相关问题