首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成重置密码令牌的最佳实践

生成重置密码令牌的最佳实践
EN

Stack Overflow用户
提问于 2013-11-16 09:51:29
回答 1查看 23.5K关注 0票数 26

关于如何构建重置密码令牌,有什么最佳实践吗?我在想:

随机17个字符a-zA-Z0-9 +全球唯一id +随机17个字符a-zA-Z0-9。

有没有更好的解决方案,或者重置密码令牌的行业标准?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-16 21:56:52

有一些重要的问题需要考虑。

为了避免Url.

  1. 代码应该是真正随机的(从MCRYPT_DEV_URANDOM读取),并且不应该从其他与用户相关的代码中推导出base62编码(A-Z a-z 0-9)。

这就导致了这样一个问题:在用户单击链接后,您必须在数据库中查找令牌的散列。有两种可能的方法来存储令牌:

  • 您可以使用类似于SHA512的散列算法对令牌进行散列处理。如果令牌非常强(最小长度为20,长度为0-9 a-z A-Z),则这是安全的。从理论上讲,在将散列输入数据库之前,你必须检查它是否已经存在,实际上这是可以忽略的。我实现了一个可以处理这类令牌的password-reset class
  • 你用BCrypt和salt对令牌进行哈希处理。这允许使用较短的令牌,但您不能在数据库中搜索散列的令牌。相反,您必须在链接中包含行id才能找到令牌。
票数 48
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20013672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档