【问题标题】:QueryString Encryption and Related Characters ProblemsQueryString 加密及相关字符问题
【发布时间】:2013-01-10 17:35:20
【问题描述】:

我正在使用 64base 数据加密函数来加密和解密在链接中发送并返回 QueryString 的 emil 地址:

Encrypt(txtEmail.Text).ToString 

// 生成类似这样的“pqM/rgLD9PSrE+Ofm4pt4kg86+1RChHD”

Decrypt(Request("email").ToString

但 Decrypt 无法正常工作并返回错误“Base-64 char 数组的长度无效”,直到我喜欢可以使用以下方法解决它:

Decrypt(Request("email").Replace(" ", "+").ToString)

由于加号“+”字符在从 URL 调用时会生成空格。 我也试过 UrlEncode 但没有帮助

Decrypt(Server.UrlEncode(Request("email")))

现在我的问题是:

  1. 这是我在使用加密字符串时可能面临的唯一问题吗?
  2. 有没有比我使用替换功能更有效的解决问题的方法?

提前谢谢大家

【问题讨论】:

  • Base64 未加密

标签: vb.net encryption query-string asp.net-4.0


【解决方案1】:

如果您没有正确生成 URL,就会发生这种情况。

ASP.Net Request 访问器将自动解码您访问的数据。

但是,您需要先对字符串进行 URL 数据编码,然后再将其放入查询字符串中。

【讨论】:

  • 嗨 SLaks,在我的例子中,我在将 URL 发送给单击链接的成员电子邮件之前加密了电子邮件地址,然后在到达确认页面时将其解密。你的意思是我必须在我发送的链接中使用 URL-data-encode .. 比如 :"xxx.aspx?query=" + Server.UrlEncode(Encrypt(EmailValue).ToString) ... 谢谢
  • @hsobhy:是的。每当您将数据插入任何类型的结构化格式(URL、HTML、Javascript、SQL 等)时,您总是需要对其进行正确编码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-03
  • 1970-01-01
  • 1970-01-01
  • 2022-06-14
  • 1970-01-01
  • 2011-07-26
相关资源
最近更新 更多