0

UUID.randomUUID() 是否适合用作一次性密码的后续问题?,接受的答案暗示您不需要 122 位(例如 UUID)来获得足够的随机性来保证安全。

4

1 回答 1

1

这取决于实际上无法猜测的复杂程度。

首先设定一个时间段,当猜测是如此不切实际以至于它实际上无法使用时,例如一年(365 天)。

将时间段除以使用邮件中的链接发出单个请求所需的时间。(即不是单个请求响应的时间,而是您可以使用并行处理执行请求的频率。)例如 0.1 秒,它在一年的时间段内提供 315360000 个请求。

乘以活动代码的数量,再乘以 2,以补偿寻找有效代码的平均时间。例如,100 个代码给出 63072000000 个组合。

对于该示例,您需要 36 个随机位 (2 36 = 68719476736) 才能获得几乎无法猜测的代码。

于 2013-09-14T12:11:02.277 回答