パスワード生成ツール無料で使えるパスワードジェネレーター
ホーム>解説記事>エンジニア向け:コマンド・プログラムによるパスワード生成

エンジニア向け:コマンド・プログラムによるパスワード生成

開発・運用の現場でよく使われる、コマンドラインやプログラム言語によるパスワード生成方法を紹介します。

Linux / Mac(ターミナル)

OpenSSLを使う方法が手軽です。

openssl rand -base64 16

/dev/urandom を使う方法もあります。

tr -dc A-Za-z0-9 </dev/urandom | head -c 16

Windows(PowerShell)

-join ((33..126) | Get-Random -Count 16 | % {[char]$_})

Python

標準ライブラリの secrets モジュールを使うことで、暗号学的に安全な乱数を生成できます(random モジュールはセキュリティ用途には不適切です)。

import secrets
import string

alphabet = string.ascii_letters + string.digits + string.punctuation
password = ''.join(secrets.choice(alphabet) for _ in range(16))
print(password)

PHP

random_bytes() や random_int() を使うことで、暗号学的に安全な乱数を生成できます。

function generatePassword($length = 16) {
    $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
    $password = '';
    for ($i = 0; $i < $length; $i++) {
        $password .= $chars[random_int(0, strlen($chars) - 1)];
    }
    return $password;
}
echo generatePassword(16);

Basic認証用パスワードの生成

Webサーバーの Basic認証(.htpasswd)で使うパスワードも、同じ考え方で作成できます。Apacheのhtpasswdコマンドを使う場合の例です。

htpasswd -c /etc/apache2/.htpasswd ユーザー名

コマンド実行時にパスワードの入力を求められるため、事前に当サイトの記号なしパスワード生成ツールなどで作成した文字列を貼り付けるとスムーズです。設定ファイルの記法によっては特定の記号がエラーの原因になることがあるため、迷った場合は英数字のみの構成がおすすめです。同様の考え方は、WordPressの管理画面パスワードやFTP/SSHアカウントのパスワード設定にもそのまま応用できます。

専用ツールを使うメリット

コマンドやコードを都度書くのは手間がかかります。当サイトのパスワード生成ツールは、当サイトのコアロジックも同様に crypto.getRandomValues という暗号学的に安全な乱数APIを使用しており、ブラウザからワンクリックで同等の安全性のパスワードを生成できます。複数個必要な場合は一括生成ツールも便利です。

テストデータ・APIキー生成にも

記号なしのランダムな文字列(例:APIキー風IDやテストデータ)にはランダム文字列生成ツールが便利です。英大文字・小文字・数字の組み合わせを、1〜128文字の範囲で1個から最大1000個まで一気に生成できます。「似ている文字を除外(I l 1 O 0 o |)」のオプションをオンにすると、印刷・OCRで読み間違いにくい識別子を作れます。

関連ツール