ban*_*ing 14 java random android secure-random
我已经读过,一般来说,SecureRandom的一些实现可能会产生真正的随机数.
特别是,Android文档说
此类的实例将使用内部熵源生成初始种子,例如
/dev/urandom
但这是否意味着它会产生真正的随机数(即,而不是伪随机数)?
如果我SecureRandom
以这种方式在Android中使用...
SecureRandom sr = new SecureRandom();
Run Code Online (Sandbox Code Playgroud)
...每当我打电话时,我会得到一个真正的随机输出sr.nextBoolean()
吗?
或者,如果我每次都通过这样做获得输出,那么输出可能更多(或更少?)随机:
new SecureRandom().nextBoolean()
?
关键的答案是/dev/urandom
,正如Linux 内核所定义的那样,保证不会阻塞。重点是在生成足够的熵的同时不要让用户停顿。如果 android 文档说他们正在使用/dev/urandom
初始化,并且内核中没有足够的熵来提供随机数,则内核将回退到伪随机算法。
根据内核文档,/dev/urandom
除了“长期[加密]密钥”之外,它被认为足以满足几乎所有目的。鉴于您的预期用途的描述,我怀疑 androidSecureRandom
将证明对于您的目的来说足够随机。
归档时间: |
|
查看次数: |
3532 次 |
最近记录: |