C# 转换成散列码并解密

C# 转换成散列码并解密,c#,asp.net,hashcode,C#,Asp.net,Hashcode,我在url中传递贷款ID、社会保险号码和zipcode LoanID: 205689 ssn No: 555-896-4569 Zip code: 12345 url是http://localhost/Product/abc/manager/internet/PayCredential.aspx?LoanID=205689 为了安全起见,我需要将社会保险号码和邮政编码转换为哈希码,并将它们传递到这个url中。然后我会在调用页面时解密它们。我怎样才能做到这一点呢?不要费心重新发明轮子。使用SSL

我在url中传递贷款ID、社会保险号码和zipcode

LoanID: 205689
ssn No: 555-896-4569
Zip code: 12345
url是
http://localhost/Product/abc/manager/internet/PayCredential.aspx?LoanID=205689


为了安全起见,我需要将社会保险号码和邮政编码转换为哈希码,并将它们传递到这个url中。然后我会在调用页面时解密它们。我怎样才能做到这一点呢?

不要费心重新发明轮子。使用SSL-您的所有通信都将被加密,包括您的URL。

在您的情况下,加密不起作用。无法从对象的哈希值访问该对象。您应该在发送数据之前对其进行加密,并在使用之前对其进行解密。在这里,您可以看到一个如何在c#中使用encrpyt和解密的示例:


此外,您还可以使用https来提高安全性。

您的整个方法都是错误的。在任何情况下都不应通过querystring传递该信息,即使使用SSL对其进行加密。正如我在@zmbq的评论中所提到的,我不希望有人在我支付抵押贷款的时候浏览我的SSN,谢谢


您应该做的是将数据安全地存储在服务器端,SSL保护您的连接,并且客户端的URL应该只使用不可识别的令牌(如会话ID)来引用它。如果用户需要输入其SSN作为其登录标识符的一部分,则应通过密码字段输入,以便浏览器屏蔽输入。

哈希是单向过程。你需要加密,这是一个双向的过程。我希望你发布的SSN不是真实的SSN。向下投票,因为有人帮助你,而你没有回应。只是SSL不会阻止站在我后面的人在浏览器地址栏中看到我的SSN。在银行应用程序中,这是一个相当大的失败(我只能假设是这样)。站在你后面的人也可以看到你键入的内容,或者屏幕上其他地方的SSN。如果它被输入密码字段,则不会。