0

如何在 Erlang 中获得加密的强随机数,相当于从 Unix 上的 /dev/random 读取?

到目前为止,我只看到了使用 random:uniform 的建议,并用类似 now() 的东西来播种它,但它不够强大。

(是的,我知道它在 BSD 上是伪随机的,但显然他们认为它足够好,如果不是,那就是他们的问题)。

4

2 回答 2

7

这个更好:crypto:strong_rand_bytes/1

使用加密安全的 prng 播种并定期与操作系统提供的熵混合。

如果要将字节转换为整数,请尝试crypto:bytes_to_integer(crypto:strong_rand_bytes(N))N是您要随机生成的字节数)。

使用crypto模块的提示:使用最新版本的 Erlang :)

于 2013-09-15T16:47:42.530 回答
2

我认为您正在寻找crypto:rand_bytes/1crypto:rand_uniform/2

于 2013-09-15T16:16:23.267 回答