-6

我有一个完全基于 Windows 的 C# 编写的 Winform 应用程序。它没有任何网络模块,我也没有注册任何网络域名。该软件已完成,但现在我需要合并另一个称为密​​码恢复的功能。我是这个东西的新手,所以请帮助我。我不想坚持下去。我只是希望如果用户忘记了密码,他所做的就是按下“忘记密码?” 登录屏幕上的超链接和密码应该在他的电子邮件帐户中通过电子邮件发送给他。如何实现此功能?请给出一个代码示例,考虑到我的电子邮件是“source@gmail.com”,目标电子邮件是“destination@gmail.com”

4

2 回答 2

2

正如 user1932945 所说,您永远不应该存储实际密码。相反,您应该散列他们的密码,在密码末尾添加一个随机生成的数字(您的密钥)。然后散列新密码。最后,将散列密码与密钥一起存储。然后,当他们登录时,您获取他们的密码并从存储它的任何地方获取密钥,再次将其添加到密码中,对其进行哈希处理,然后将其与您存储的哈希密码进行比较。

当他们忘记密码时,您应该通过电子邮件向他们发送重置密码的方法。当他们重置它时,您按照我已经提到的步骤来存储新密码。

于 2013-03-02T00:49:50.633 回答
1

您永远不应该通过电子邮件将密码发送给某人。这意味着您正在存储密码,您永远不应该这样做。相反,您应该允许用户重置他们的密码。

这样做的方法是通过电子邮件发送一个代码,该代码将触发 winform 应用程序中的密码重置。重置代码可以是 winform 应用程序根据请求生成的 guid,并存储在内存中,直到收到电子邮件。

于 2013-03-02T00:40:11.743 回答