如何创建一个包含20个随机字节的数组?

问题

如何在Java中创建一个包含20个随机字节的数组?


#1 热门回答(228 赞)

试试Random.nextBytes方法:

byte[] b = new byte[20];
new Random().nextBytes(b);

#2 热门回答(22 赞)

如果你想要一个加密强大的随机数生成器(也是线程安全的)而不使用第三方API,你可以使用SecureRandom

Java 6&7:

SecureRandom random = new SecureRandom();
byte[] bytes = new byte[20];
random.nextBytes(bytes);

Java 8(更安全):

byte[] bytes = new byte[20];
SecureRandom.getInstanceStrong().nextBytes(bytes);

#3 热门回答(13 赞)

如果你已经在使用Apache Commons Lang,那么RandomUtils就是一个单行代码:

byte[] randomBytes = RandomUtils.nextBytes(20);