【问题标题】:generating/ storing account activation code生成/存储帐户激活码
【发布时间】:2011-01-22 15:58:49
【问题描述】:

通常在您注册后的任何网站上,他们都会向您发送一封包含帐户激活码的电子邮件, 有没有关于这种技术的一些信息/最佳实践?
比如你如何生成它们,你如何存储它们,你是否对这些激活码进行编码?

【问题讨论】:

标签: user-accounts activation


【解决方案1】:

生成激活码可以像生成具有固定位数的随机数一样简单。

我个人这样做,然后将生成的代码与用户名/密码/电子邮件等一起存储在数据库的用户表中,以便在单击链接并运行检查代码时可以快速验证。

我通常使用“长”数据类型并生成 9 位随机数,并将这些原始(未编码)存储在数据库中以便于检索。密码应该进行编码,但激活码是一次性使用的一次性值,因此无需任何特殊考虑。

【讨论】:

  • 您可能会为 2 个帐户生成相同的长值,使用 Guid 怎么样
  • 没关系,因为 ID 只会用于您正在激活的帐户名称。你所需要的只是一些不可猜测的东西。
【解决方案2】:

恕我直言,最好的方法是不要存储密钥并在需要时使用种子或私钥生成它。或者使用 MD5 摘要类型的逻辑来使用特定的用户参数,例如,生成一个字符串“username-email-id”并将其散列并在用户再次单击它时将其发送到电子邮件中,尝试生成密钥并将其匹配用户密钥。无需储存,无法再生。

【讨论】:

    猜你喜欢
    • 2016-03-11
    • 2017-10-03
    • 2011-05-16
    • 2016-08-31
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多