在C#net中加密查询字符串

在C#net中加密查询字符串,c#,asp.net,C#,Asp.net,我想加密查询字符串,然后解密。在C#中有什么方法可以做到这一点吗 谢谢因为加密数据很可能包含特殊字符,所以必须采用base64编码或类似编码 您可以找到一个encode/decode类,它为您做一些不必要的工作。他们中的许多人都在那里 可能在找什么 URLEncode方法将URL编码规则(包括转义字符)应用于指定的字符串 (以防万一您对“encrypt”(加密)过于敏感,否则其他人对保护字符串的值有很好的回答。)您可以将名称/值集合加密到字符串,然后将加密的字符串作为单个查询参数传递 我在一篇文

我想加密查询字符串,然后解密。在C#中有什么方法可以做到这一点吗


谢谢

因为加密数据很可能包含特殊字符,所以必须采用base64编码或类似编码

您可以找到一个encode/decode类,它为您做一些不必要的工作。他们中的许多人都在那里

可能在找什么

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


(以防万一您对“encrypt”(加密)过于敏感,否则其他人对保护字符串的值有很好的回答。)

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


我在一篇文章中演示了这种技术。

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

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


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

最好的解决方案是通过HTTPS托管服务。失败:谁将解密电子邮件地址?您想使用对称还是非对称加密?正如Wenham所建议的,您可能正在寻找错误的解决方案。如果您可以解释为什么要加密然后解密您的邮件,那么您可能会得到更好的答案。请参阅,或者您是否仅根据电子邮件地址验证使用情况?那太不可思议了。你需要在那里的某个地方加入密码。还有,我修正了你的拼写。[“dis”IsequalString:@“this”]!=是的;在一个页面中,我对用户进行身份验证,只有在用户输入了有效的emailid但知道该url的情况下,才能访问此url。出现此url后,针对用户创建数据库条目,验证其电子邮件ID,但无需单击激活链接,某些mt只需使用url和嵌入的电子邮件ID并检查验证我已采取所有步骤避免拒绝服务,但客户端需要被加密查询字符串我可以用c sharp完成吗我需要64位encryption@Beckham,据我所知,guid不是加密安全的或唯一的。Wikipedia引述:“WinAPI GUID生成器的密码分析表明,由于V4 GUID序列是伪随机的,在充分了解内部状态的情况下,可以预测以前和以后的值……”——因此,可能最好使用SHA-2之类的散列函数(请参阅)如果Guid存储在具有唯一约束的数据库中,这将不是问题。加密电子邮件的目的是什么?您可能可以预测子序列值,但您可以在HTTP POST Tedd中进行验证,这是正确的。一旦你有了一个加密的值,然后你想在某个地方的URL中使用它(比如查询字符串参数),你需要转换“特殊字符”,以便它们可以在URL中使用。通常,这是基于64的编码。只需搜索如何对其进行Base64编码。但密钥是恒定的,它不会使网页安全。密钥必须是安全的随机密钥。@Nayef:这是一个选项。但说必须这样做是不正确的。
string emailfield=txtEmail.Text.ToString();
string url = 
   "http://localhost:3076/user/Authenticate-Users.aspx?email="+emailfield;