salt - 来自 "email+salt "的哈希值作为验证电子邮件的 token

标签 salt email-validation sha256 sha saltedhash

我正在验证用户电子邮件地址。
大多数人告诉的方式是创建一些独特的 token 将其存储在数据库中并 发送给用户。

我只需使用站点范围的盐对电子邮件地址进行哈希处理(sha256)即可实现此目的
并将此哈希值发送给用户。

我是否遗漏了什么或者这足以验证吗?

最佳答案

一些可能值得一看(或不值得一看)的事情。

如果有人发现了你的盐,那么他们就可以重建你的哈希值并淹没你的系统。在这种情况下,您需要确保用户请求将其电子邮件地址添加到您正在创建的任何内容中。 (也就是说,我不会完全摆脱将哈希存储在数据库中。)

此外,如果盐相同,则当他们再次从同一电子邮件地址请求时,哈希值将相同。即使对于相同的电子邮件地址,您是否希望每次发出请求时都使用不同的哈希值?您可以在散列之前将服务器日期/时间连接到电子邮件地址,以使其每次都不同。

关于salt - 来自 "email+salt "的哈希值作为验证电子邮件的 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7276109/

相关文章:

security - 散列和加盐的密码是否可以防止字典攻击?

ruby-on-rails - password_hash/password_salt 与 password_digest

java - 使用 shiro 散列和加盐密码

django - 更改用户电子邮件地址

regex - 这个用于验证电子邮件的 RegEx 有什么问题?

javascript - 使用 HMAC sha256 和 base64 编码请求正文

security - 盐应该有多长才能使尝试字典攻击变得不可行?

java - 如何测试 TextField 的值是否是有效的电子邮件?

C# 支持对单个 XML 元素进行 RSA SHA 256 签名

java - 选择sha256解密和md5转换postgresql和java