是否有相当于 python random._urandom() 的 java ? [复制]
Posted
技术标签:
【中文标题】是否有相当于 python random._urandom() 的 java ? [复制]【英文标题】:Is there a java equivalent of python random._urandom()? [duplicate] 【发布时间】:2019-10-18 11:21:17 【问题描述】:如果java有一个类似于python中的函数urandom从随机库中的函数我该如何使用它?
你会做的 Python:
import random
random._urandom(1)
为此我可以在 java 中做什么?
Urandom 不生成随机数,它返回 n 个适合加密使用的随机字节
【问题讨论】:
不可能。 Urandom 不生成整数 查看Random
类中的所有方法,它不仅生成整数。也看看SecureRandom
。
@SamuelPhilipp 如果这些方法也使用外围数据作为随机性来源,那只会是一个骗子
在 Python 中,random
模块不适合加密需求,请从 Python 3.6 开始使用 secrets module。
@PhantomFangs, urandom
是不“适合加密使用”(除了可能不会持续很长时间的会话密钥);它使用(或至少最初使用)的/dev/urandom
明显比/dev/random
更快但更弱,/dev/random
如果没有足够的熵来提供良好的值,则会阻塞,因此是密钥生成的更好选择。
【参考方案1】:
用途:
byte[] bytes = new byte[x];
new Random().nextBytes(bytes);
然后你的数组将被随机字节填充
【讨论】:
以上是关于是否有相当于 python random._urandom() 的 java ? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
Python:如何修复我绘制的“随机”值s.t.函数调用是否一致?
PHP 相当于 Python 的 __name__ == "__main__"?