【发布时间】: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如果没有足够的熵来提供良好的值,则会阻塞,因此是密钥生成的更好选择。