如何在C#中存储加密密码?

时间:2016-07-27 10:51:08

标签: c# asp.net cookies encryption

我想在cookie中存储用户名和密码。 我使用MD5 Hashing技术加密密码。 那么如何将加密密码存储在cookie中呢?

3 个答案:

答案 0 :(得分:1)

不是这样的。您放置了一些参数,如时间戳,用户代理,当前IP,用户名等。但不是密码。现在计算令牌的哈希并将其作为cookie发送。这就是如何制作身份验证令牌。

要在登录时对用户进行身份验证,请计算服务器上的哈希值,并将其与数据库中的哈希值进行比较。不要在线发送您的哈希密码。为了获得更好的标准,您应该使用salted hash作为密码。请参阅this以了解盐类。

此外,MD5不是加密哈希。两者之间有很多不同。此外,使用SHA而不是MD5。有关详细信息,请参阅this

答案 1 :(得分:0)

您不应该在Cookie中存储用户名和密码,因为它已发送给客户端。即使它已经散列,特别是如果您要将cookie中收到的散列密码与数据库中直接比较的密码进行比较。这打破了散列的目的。

如果要在请求之间保留用户的会话,则应使用会话ID。我不是C#专家,但快速谷歌我发现了这个:

facade.UpdateEasyPayFromResultPayment

这就是我将存储在cookie中的内容。

答案 2 :(得分:0)

我不会向任何人推荐这个......

而是保存从用户那里获取密码。将它们保存在会话中以在整个用户连接期间使用,如果您希望用户使用相同的密码并稍后登录,则必须拥有一个存储数据的数据库。

所以存储信息如下

Session["username"] = txtusername.Text;

然后在不同的页面或其他地方再次使用它

string username = Session["username"].toString();