加密C#.net中的查询字符串

时间:2011-03-15 17:44:38

标签: c# asp.net

string emailfield=txtEmail.Text.ToString();
string url = 
   "http://localhost:3076/user/Authenticate-Users.aspx?email="+emailfield;

我想加密查询字符串然后解密。有没有办法在C#中做到这一点?

由于

4 个答案:

答案 0 :(得分:7)

您可以将名称/值集合加密为字符串,然后将该加密字符串作为单个查询参数传递。

我在文章Encrypting Query Arguments中演示了这种技巧。

答案 1 :(得分:2)

由于加密数据很可能包含特殊字符,因此必须使用base64编码或类似字符。

你可以找到一个编码/解码类,为你做脏工作。他们中的很多人都在那里。 Here is one example.

答案 2 :(得分:0)

可能正在寻找Server.UrlEncode

  

URLEncode方法将URL编码规则(包括转义字符)应用于指定的字符串。

(以防万一特定于“加密”,否则其他人在保护字符串值方面有很好的答案。)

答案 3 :(得分:0)

更简单的解决方案可能是在创建GUID时将GUID与用户帐户一起存储。例如,您可以将其称为VerificationCode。当您创建用户帐户时,您随机存储一个GUID,例如120a9c10-4f2e-11e0-b8af-0800200c9a66。

现在,在激活链接中,您嵌入了GUID而不是电子邮件地址: http://localhost:3076/user/Authenticate-Users.aspx?code=120a9c10-4f2e-11e0-b8af-0800200c9a66

当页面执行时,它会通过GUID查找用户以标记该帐户已被确认。