通过 UUID 生成密码重置令牌
Generate password reset token through UUID
我正在寻找生成随机唯一字母数字密钥以重置用户密码的机制。
我在这个方向上看了很多,但看起来这东西不是很明显。
我试过类似的东西:
new String(encodeBase64URLSafe(UUID.randomUUID()));
但是看了下面的文章后:Is UUID.randomUUID() suitable for use as a one-time password?看来这种方式不完全正确。
如果您能回答以下问题,我们将不胜感激:
- 使用 UUID 生成此类令牌的安全方法是什么?
- 我们是否需要将 UUID 字符串转换为 base64 以获得安全的 URL,或者从生成的字符串中删除破折号就足够了?
- 出于这样的目的 How to generate a random alpha-numeric string? 使用此 link 的机制是否正确,为什么?
使用 UUID 是安全可靠的。链接的文章只是说 UUID 对于这种安全性来说可能有点太多了。但是好吧......如果你 "too" 安全,没有人会责怪你。
UUID 只是字母数字字符和破折号。所以如果你需要把它放在一个查询字符串或一个 URL 中,你就没有什么可以转义的了。如果需要,您可以删除破折号以节省一些 space。但这不是必需的。
这个机制也是安全的。两者(UUID 和这个)都可以使用。
对于这种安全性,您所要做的就是确保您的令牌是随机生成的(甚至是部分生成的)。
我正在寻找生成随机唯一字母数字密钥以重置用户密码的机制。
我在这个方向上看了很多,但看起来这东西不是很明显。
我试过类似的东西:
new String(encodeBase64URLSafe(UUID.randomUUID()));
但是看了下面的文章后:Is UUID.randomUUID() suitable for use as a one-time password?看来这种方式不完全正确。
如果您能回答以下问题,我们将不胜感激:
- 使用 UUID 生成此类令牌的安全方法是什么?
- 我们是否需要将 UUID 字符串转换为 base64 以获得安全的 URL,或者从生成的字符串中删除破折号就足够了?
- 出于这样的目的 How to generate a random alpha-numeric string? 使用此 link 的机制是否正确,为什么?
使用 UUID 是安全可靠的。链接的文章只是说 UUID 对于这种安全性来说可能有点太多了。但是好吧......如果你 "too" 安全,没有人会责怪你。
UUID 只是字母数字字符和破折号。所以如果你需要把它放在一个查询字符串或一个 URL 中,你就没有什么可以转义的了。如果需要,您可以删除破折号以节省一些 space。但这不是必需的。
这个机制也是安全的。两者(UUID 和这个)都可以使用。
对于这种安全性,您所要做的就是确保您的令牌是随机生成的(甚至是部分生成的)。