【Java】nextBytesでランダムなバイト配列を取得する!

ランダムなバイト配列を取得するにはSecureRandomクラスのnextBytesメソッドを使用します。

SecureRandomクラスのnextBytesメソッドはユーザーが指定したバイト配列にランダムバイトとして生成する
メソッドとなります。
nextBytesメソッドのパラメータにバイト配列を指定することで指定したバイト配列にランダムバイトを作成します。

また、SecureRandomクラス以外にもRandomクラスのnextBytesメソッドを使用してランダムなバイト配列を取得することもできますが、SecureRandomクラスのnextBytesメソッドよりも推測が困難な乱数を作成するので注意が必要です。

今回はSecureRandomクラスのnextBytesメソッドを使って以下の場合でランダムなバイト配列を取得していきます。

⚫︎ ランダムなバイト配列を一気に取得する場合
⚫︎ ランダムなバイト配列を1つずつ取得する場合

また、Randomクラスを使ってランダムなバイト配列を取得する方法についても紹介していきます。

nextBytesメソッドとは

SecureRandomクラスのnextBytesメソッドはユーザーが指定したバイト配列にランダムバイトとして生成するメソッドとなります。

nextBytesメソッドの書き方

nextBytesメソッドの構文は下記となります。

パラメータ

⚫︎ byte配列:
ランダムに取得したいbyte配列を指定します

nextBytesの()にbyte配列を指定し、メソッドを呼び出すことで()に指定したbyte配列にランダムなバイト配列を取得します。

ランダムなバイト配列を取得するサンプルコード

ランダムなバイト配列を取得するサンプルコードを紹介します。

ランダムなバイト配列を一気に取得する場合

出力結果

[-3, 96, -96, 24, 118, 8, 24, 44, 40, -33]

nextBytesメソッドによってランダムなバイト配列を一気に取得しています。

ランダムなバイト配列を1つずつ取得する場合

ランダムなバイト配列を1つずつ取得するには拡張for文を使用します。

出力結果

-97
-101
-52
-89
7
-13
16
86
-78
74

拡張for文によってランダムなバイト配列を1つずつ取得しています。

Randomクラスでランダムなバイト配列を取得する場合

RandomクラスのnextBytesメソッドを使用してもランダムなバイト配列を取得することができます。
しかし、SecureRandomクラスのnextBytesメソッドよりも推測が困難な乱数を作成するので注意してください。

出力結果

[-45, 51, -56, 110, -12, -6, 24, -116, 104, 61]

RandomクラスのnextBytesメソッドによってランダムなバイト配列を取得しています。
Randomクラスを使用する場合もnextByteメソッドを使用します。

今回のポイント

nextBytesでランダムなバイト配列を取得

ランダムなバイト配列を取得するにはSecureRandomクラスのnextBytesメソッドを使用する

⚫︎ SecureRandomクラスのnextBytesメソッドでランダムなバイト配列を作成する

⚫︎ nextBytesメソッドのパラメータにバイト配列を指定し、メソッドを呼び出すことでパラメータのバイト配列にランダムなバイトを作成する

⚫︎ ランダムなバイト配列を1つずつ取得する場合には拡張for文を使用する

⚫︎ RandomクラスのnextBytesメソッドを使用してもランダムなバイト配列を作成する
(推測が困難な乱数を作成する)

関連記事

乱数を取得するMathクラスのrandomメソッドについてはこちらをご参考ください。

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し