我正在寻找生成随机唯一字母数字键以重置用户密码的机制。
我在这方面做了很多事,但看起来这件事并不明显。
我尝试过这样的事情:
new String(encodeBase64URLSafe(UUID.randomUUID()));
但在阅读了以下文章之后:Is UUID.randomUUID() suitable for use as a one-time password?看起来这种方式并不完全正确。
如果您回答以下问题,我们将非常感激:
答案 0 :(得分:5)
使用UUID是安全可靠的。链接的文章只是说UUID对于这种安全性来说可能有点太多了。但是......如果你是#34;那么"安全,没有人会责怪你。
UUID只是字母数字字符和破折号。因此,如果您需要将其放在查询字符串或URL中,则无需任何操作。如果需要,您可以删除破折号以节省一些空间。但这不是必需的。
这种机制也很安全。两者(UUID和这一个)都可以。
对于这种安全性,您所要做的就是确保您的令牌是随机生成的(甚至是部分令牌)。