URL信息的加密

时间:2012-04-22 10:22:50

标签: c# asp.net encryption

目前我正在创建在线考试,我需要通过网址将一小部分信息从一个页面传递到另一个页面。

目前我有这个:

Response.Redirect("Home.aspx?uName=" + txtUserName.Text);

其中包含用户UserName的主页,然后拾取并加载信息。但我想要做的是如何加密UserName,以便用户无法使用它,也无法猜测它是什么。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:3)

不要使用它。

改为使用Session

如果您确实需要通过URL,那么加密(密码加密)数据并使用Base64对其进行编码(编码为transferreable chars)(别忘了加密' +'签名因为Base 64确实使用它,但浏览器认为它是一个空间......)

答案 1 :(得分:2)

一个简单的解决方案是从这个问题中得到答案:Encrypt and decrypt a string并执行以下操作:

Response.Redirect("Home.aspx?uName=" + Server.UrlEncode(Crypto.EncryptStringAES(txtUserName.Text, "YourEncryptionKey"))

然后在您的下一页上,只需反转该过程即可将值恢复原样:

var username = Crypto.EncryptStringAES(Request["uName"], "YourEncryptionKey")

但我会问,你为什么要通过网址传递用户名?使用会员提供商并让用户登录会不会更好?然后,您可以将任何相关信息存储在与该用户关联的数据库中。