【Mac】OpenSSLコマンドで乱数を生成する

当ページのリンクには広告が含まれている場合があります。
キーコマンド

先日、証明書発行の際に乱数の生成が必要となったため、MacにOpenSSLコマンドインストールして乱数を生成してみました。

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

今回の環境は以下の通りです。

  • macOS Monterey(12.6.1)
  • OpenSSL(3.0.7)
目次

OpenSSLをインストールする

MacはHigh Sierraのバージョンから、デフォルトのOpenSSLがLibreSSLに変更されています。

$ openssl version
LibreSSL 2.8.3

LibreSSLのままでも良いのですが、今回はOpenSSLを使いたいので、まずはHomebrewでインストールしましょう。

$ brew install openssl

Homebrewをまだインストールしていない方は、公式サイトを確認してインストールしておいてください。

インストールしたらパスを通して、設定を再読み込みしましょう。

$ echo 'export PATH="/usr/local/opt/openssl@3/bin:$PATH"' >> ~/.zshrc
$ source .zshrc

bashの方は以下になるかと思います。

$ echo 'export PATH="/usr/local/opt/openssl@3/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile

バージョンを確認して準備完了です。

$ openssl version
OpenSSL 3.0.7 1 Nov 2022 (Library: OpenSSL 3.0.7 1 Nov 2022)

乱数の生成

OpenSSLコマンドの基本的な型は以下の通りです。

$ openssl rand {進数} {任意のbyte数}
{進数}説明入力例(10byteで生成する場合)
-hex16進数openssl rand -hex 10
-base6464進数openssl rand -base64 10
OpenSSLコマンドの基本的な型の説明表

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

ファイルに出力する

今度は、生成した乱数をファイルに出力してみましょう。

$ openssl rand {進数} {任意のbyte数} > {ファイル名}
  • {進数}{任意のbyte数}については前述の表と同様です。
  • {ファイル名}には、sample.txtなどのように任意のファイル名を入力してください。

以下のように実行すると、指定したファイルに乱数が出力されていると思います。

$ openssl rand -base64 10 > sample.txt

(おまけ)任意の文字数で区切ってみる

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

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

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

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

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

おわりに

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

OpenSSLに限らず、こういったコマンド関連は覚えておくといろんな場面で役に立ちます。

  • ちょっとした処理を実行する(今回の例)
  • サーバーサイドでバッチ処理を書く
  • シェルスクリプトを書いてローカルの処理を自動化する
  • etc…

コマンドを覚えた分だけ世界が広がるので、ぜひ実際に手を動かしておぼえていきましょう!

シェアしていただけると嬉しいです!
目次