![](/img/trans.png)
[英]Should I prefer ThreadLocalRandom over ThreadLocal<Random>?
[英]Should I prefer ThreadLocalRandom or SecureRandom?
我知道Random
类会生成不安全的随机序列,在处理安全问题时我更喜欢使用SecureRandom
。 但是ThreadLocalRandom
呢? 它或多或少是安全的?
// generate a five-digit numeric confirmation code
Long code = ThreadLocalRandom.current().nextLong(1, 99999);
如其 javadoc中所述, ThreadLocalRandom
类似于Random
(即不安全),但在并发访问的情况下具有更好的性能。
ThreadLocalRandom
的实例在密码学上不是安全的。 考虑在安全敏感的应用程序中使用SecureRandom
。
ThreadLocalRandom
类似于ThreadLocal<Random>
,它为每个线程创建Random
实例。 这与密码学上下文中的安全性无关。
所以问题是“ Random
和SecureRandom
之间的区别是什么”实现。
SecureRandom
的不同之处在于,它通过了密码学安全所需的测试。 它完全通过了FIPS 140-2 (密码学中使用的生成器标准)指定的测试。 有关更多详细信息,请参阅SecureRandom javadoc。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.