Javaで20のランダムバイトの配列を作成するにはどうすればよいですか?
Random.nextBytes
メソッドを試してください:
byte[] b = new byte[20];
new Random().nextBytes(b);
サードパーティの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);
すでにApache Commons Langを使用している場合、 RandomUtils
により、これは1行になります。
byte[] randomBytes = RandomUtils.nextBytes(20);
Java 7で導入された ThreadLocalRandom これはが現在のスレッドに分離されています。
これは maericsの解 の別の表現です。
final byte[] bytes = new byte[20];
ThreadLocalRandom.current().nextBytes(bytes);
シードを使用してランダムオブジェクトを作成し、以下を実行して配列をランダムに取得します。
public static final int ARRAY_LENGTH = 20;
byte[] byteArray = new byte[ARRAY_LENGTH];
new Random(System.currentTimeMillis()).nextBytes(byteArray);
// get fisrt element
System.out.println("Random byte: " + byteArray[0]);