【发布时间】:2016-11-03 08:19:44
【问题描述】:
我想生成字符串令牌来实现 Web 应用程序的密码重置功能。它们可以是v4 UUIDs,但不是必需的。
我希望每个令牌在this SO question 的意义上都是“安全随机的”。应该为每个生成的令牌对系统的熵池进行采样。
我找到了生成 v4 UUID 的 uuid 包。文档提到
我们使用 System.Random StdGen 作为我们的随机源。
但我不清楚这是否足够。
我应该使用其他库吗?
【问题讨论】:
-
如果您查看
nextRandom的源代码(单击右侧的Source),您会发现它只是为每个号码调用Crypto.Random.Entropy.getEntropy,并根据documentation forCrypto.Random"该模块用于实例化加密强确定性随机位生成器“所以我相信你应该是安全的。 -
如果您存储在数据库中并使用像持久化这样的库,那么您可以通过内部 postgres 方法本身来完成。
-
@Sibi 我正在使用 MySQL,其 UUID 函数不是“安全随机”,从文档来看:dev.mysql.com/doc/refman/5.7/en/…
标签: security haskell random cryptography