是否有相当于 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__"?

Python学习_random模块使用

python(30)——random模块if __name__ =='__main__'os模块

Python_不归路 random模块

python 中is 和 ==的区别