【问题标题】:Is there a java equivalent of python random._urandom()? [duplicate]是否有相当于 python random._urandom() 的 java ? [复制]
【发布时间】: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 如果没有足够的熵来提供良好的值,则会阻塞,因此是密钥生成的更好选择。

标签: java python


【解决方案1】:

用途:

byte[] bytes = new byte[x];
new Random().nextBytes(bytes);

然后你的数组将被随机字节填充

【讨论】:

    猜你喜欢
    • 2013-07-07
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    • 1970-01-01
    • 2020-11-26
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    相关资源
    最近更新 更多