Linux

opensslコマンドで乱数を生成する!

キーコマンド

先日、証明書発行の際に乱数の生成が必要となったため、Macに標準でインストールされていたopensslコマンドを利用してみました。

Windows10で乱数を生成したい方はこちらの記事がおすすめです。

fonts
Windows10でランダムな文字列を生成する方法【PowerShell】 キーの生成をしたいときなど、ランダムな文字列が必要になることってありますよね。Macであればopensslコマンドなどを使って簡単に生...

バージョンの確認

opensslのバージョンは、以下のコマンドで確認できます。

$ openssl version

私の環境(OS X El Capitan 10.11.6)では、ターミナルで上記のコマンドを打つと

OpenSSL 0.9.8zh 14 Jan 2016

と表示されました。

乱数の生成

基本的な型は以下の通りです。

$ openssl rand {進数} {任意のbyte数}
{進数}説明入力例(10byteの場合)
-hex16進数openssl rand -hex 10
-base6464進数openssl rand -base64 10

上記の入力例のように入力すると、標準出力に乱数が出力されます。

ファイルに出力する

今度は、生成した乱数をファイルに出力してみましょう。
基本的な型は以下となります。

$ openssl rand {進数} {任意のbyte数} > {ファイル名}

※ {進数}については前述の表と同様です。
※ {ファイル名}には、sample.txtなどのように任意のファイル名を入力してください。
ファイルは生成されましたか?

生成されたファイルを見ると、設定したbyte数の乱数が出力されているはずです。

それでは、今度は出力される乱数を任意の文字数で区切ってみましょう。

生成された乱数を、任意の文字数で改行してファイルに出力する基本形は以下となります。

$ openssl rand {進数} {任意のbyte数} | fold -w {何文字ごとに改行するか}

例えば、以下のように入力すると、生成された15byteの乱数が10文字ごとに改行されて出力されます。

$ openssl rand -base64 15 | fold -w 10 > sample.txt

おわりに

今回は、乱数を生成するためにopensslコマンドを利用してみました。
お手軽に乱数を生成できるので便利ですね!

それでは、本日はここまで。
お読みいただきありがとうございました!