当用户通过输入用户名使用忘记密码字段时,我正在尝试加密随机令牌以存储在用户表中。它还会向更改用户密码页面发送带有URL的电子邮件。这个url将有一个名为'key'的查询字符串参数。
即。 www.mysite.com/Changepassword?key=xfsdfsdffsdfiughjksdf
。
用户点击该链接后,他们就在此页面上。我有一个函数将通过ResetToken获取用户。如果找到用户则继续。
我需要一些建议:
答案 0 :(得分:1)
如果您想要超级安全,可以使用cryptographically secure random number generator。转换为十六进制是确保其网址安全的最简单方法:
byte[] bytes = new byte[8];
using (var rng = RandomNumberGenerator.Create())
{
rng.GetBytes(bytes);
}
string key = string.Join("", bytes.Select(b => b.ToString("X2")));
编辑请记住,电子邮件可能不安全,因此在到达收件人之前,您的邮件可能会被恶意第三方拦截(但不太可能)。