目前,我编写了一封电子邮件验证码,用于发送包含用户GUID作为验证码的链接。我不认为这是安全的,所以我想听听您的意见,创建验证码的最佳和最简单的方法是什么?
我认为最简单易行的方法是创建某种哈希值并将其放入数据库中,当用户点击其链接时,它会将链接值与数据库中的哈希值进行比较。但为什么我需要在我的数据库中只使用一次的单个列?这是浪费空间。
答案 0 :(得分:3)
通常你创建一个随机值(Guid对此很好),这是一个重置密码。代码应该过期,并且只能使用一次。您不希望有人阅读包含重置密码并能够重置代码的旧邮件(因为使用UserID Guid代码总是相同的)。
在SO上查看The definitive guide to forms based website authentication,它有很多有用的信息。
答案 1 :(得分:2)
我想说你可以对用户的GUID(可能带有SALT)执行简单的symmetric encryption,然后只需将用户的GUID解密为验证。