【问题标题】:Encrypt the querystring in C#.net在 C#.net 中加密查询字符串
【发布时间】:2011-03-15 17:44:38
【问题描述】:
string emailfield=txtEmail.Text.ToString();
string url = 
   "http://localhost:3076/user/Authenticate-Users.aspx?email="+emailfield;

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

谢谢

【问题讨论】:

  • 最好的解决方案是通过 HTTPS 托管服务。失败了:谁来解密电子邮件地址?您要使用对称加密还是非对称加密?
  • 正如 Wenham 建议的那样,您可能正在寻找错误的解决方案。如果您能解释为什么要加密然后解密您的消息,那么您可能会得到更好的答案。
  • 您是否仅基于电子邮件地址验证使用?这太荒谬了。您需要在某处合并密码。另外,我修正了你的拼写。 ["dis" isEqualToString:@"this"] != true;
  • 有一个页面,我在其中对用户进行身份验证,用户只有在输入有效的电子邮件 ID 但知道该 URL 时才会访问该 URL。在进入此 url 数据库条目后,针对用户进行了他/她的电子邮件 ID 已验证但未单击激活链接的某些 mt 仅使用 url 并嵌入 der emailid 并检查验证我已采取所有步骤来避免 dos 但客户想要的是加密查询字符串我可以用 c 语言做吗我想要 64 位加密

标签: c# asp.net


【解决方案1】:

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

我在一篇文章中演示了这种技术,Encrypting Query Arguments。

【讨论】:

  • 但是密钥是不变的,它不会使网页安全。密钥必须是安全的随机密钥。
  • @Nayef:这是一个选项。但是说它需要这样做是不正确的。
【解决方案2】:

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

您可以找到一个为您完成繁琐工作的编码/解码类。他们中的许多人在那里。 Here is one example.

【讨论】:

  • 泰德是对的。一旦你有一个加密的值,然后你想在 URL 的某个地方使用它(比如查询字符串参数),你需要转换“特殊字符”,以便它们可以在 URL 中使用。通常,这是基于 64 位编码的。只需搜索如何对其进行 Base64 编码。
【解决方案3】:

可能正在寻找Server.UrlEncode?

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

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

【讨论】:

    【解决方案4】:

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

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

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

    【讨论】:

    • @Beckham,据我所知,GUID 在密码学上不是安全的或唯一的。维基百科引用:“WinAPI GUID 生成器的密码分析表明,由于 V4 GUID 的序列是伪随机的,在充分了解内部状态的情况下,可以预测先前和后续值......”en.wikipedia.org/wiki/Globally_Unique_Identifier -- - 所以最好使用 SHA-2 之类的哈希函数(参见msdn.microsoft.com/en-us/library/…)
    • 如果 Guid 存储在具有唯一约束的数据库中,这将不是问题。加密电子邮件的目的是什么?您也许可以预测后续值,但您可以在 HTTP POST stackoverflow.com/a/13355076/1288063 中进行验证
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 2021-03-26
    • 1970-01-01
    • 2010-09-19
    • 2019-02-02
    相关资源
    最近更新 更多