【问题标题】:Encrypt URL in asp.net在 asp.net 中加密 URL
【发布时间】:2011-02-25 12:29:17
【问题描述】:

我的网站在 asp.net 3.5 和 C# 中。我正在通过邮件向我的用户发送链接,现在我想向每个用户发送一个特定的 URL。因此,我不想发送明文,而是发送带有加密字符串 URL 的链接,我将在我的主页上对其进行解密。 喜欢而不是www.mysite.aspx\mypage?userId=12 我会发送www.mysite.aspx\mypage?UserId=)@kasd12 同样,我将在我的页面上解密,以便获得userId = 12

请让我知道我的方法是否正确以及如何以最简单、更容易的方式加密和解密字符串。

【问题讨论】:

标签: asp.net security url encryption


【解决方案1】:

生成临时访问密钥不是更合适吗?

【讨论】:

  • 拥有 > 50 声望点,您应该能够将此类后续问题作为问题的 cmets 发布,而不是作为无效答案 :)
  • @Jørn 我会说这是一个有效的答案。 OP 询问“请让我知道我的方法是否正确”
  • 这是关于“请让我知道我的方法是否正确”的答案。只是我并不是说他应该使用更常见的方法来生成独特的“难以猜测”的访问代码,我试图让他考虑这是否是他真正想要的......通过默默无闻的安全性是顺便说一句,总是一件坏事:)
【解决方案2】:

生成一个随机字符串值而不是加密/解密 :) 并使其长度至少为 6 或 7 个字符。将值存储在数据库中,一旦通过查询字符串接收到值,运行 SQL 查询对相应行执行任何操作:)

Page_Load()

string x = Request.QueryString["UserID"];

SqlCommand x = new SqlCommand("UPDATE UserTable SET UserStatus='Activated' WHERE RandomKey='x'", connection);

【讨论】:

  • 使用 Guid 而不是 6 或 7 个字符的字符串。
  • @Ben - 我有同样的好主意,但发现它并不那么聪明! stackoverflow.com/questions/643445/…
  • 仅仅因为 guid 在图形上不安全并不意味着它们不适合此目的。它们不适合用作加密密钥,因为可以通过生成数百万个可能的 guid 来解密数据。这种攻击在查询字符串键的上下文中是不可行的,因为您必须在短时间内发出数百万个 http 请求
【解决方案3】:

我很确定这个code project 页面是您所追求的。它基本上是一个可用于加密查询字符串的 HttpModule。

【讨论】:

    猜你喜欢
    • 2011-05-26
    • 2012-12-13
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多