Aa の ほーむぺーじ。

ターミナルでランダムな文字列を生成する方法

  • #ターミナル

適当な文字列を作りたい時って、ありますよね???ありますよね???

コマンド

LC_ALL=C tr -dc 'A-Za-z0-9!@#$%^&*()_+=-' < /dev/urandom | head -c 20; echo

これだけ。実行するたびにランダムな文字列が出力される。

出力例: kA9!mZ#2xP&qR5+wN8jL

文字数を変えたいとき

head -c 20 の数字を変える。

# 12文字
LC_ALL=C tr -dc 'A-Za-z0-9!@#$%^&*()_+=-' < /dev/urandom | head -c 12; echo
 
# 32文字
LC_ALL=C tr -dc 'A-Za-z0-9!@#$%^&*()_+=-' < /dev/urandom | head -c 32; echo

使う文字を変えたいとき

'A-Za-z0-9!@#$%^&*()_+=-' の部分が使う文字の指定。自由に変えられる。

  • A-Z → 大文字のAからZ
  • a-z → 小文字のaからz
  • 0-9 → 数字の0から9
  • それ以外 → そのままの文字(記号など)
# 英数字のみ(記号なし)
LC_ALL=C tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 20; echo
 
# 数字だけ
LC_ALL=C tr -dc '0-9' < /dev/urandom | head -c 20; echo
 
# 小文字と数字だけ
LC_ALL=C tr -dc 'a-z0-9' < /dev/urandom | head -c 20; echo

なぜこれを使う(?)のか

  • 外部ツール不要
  • オフラインで動く
  • /dev/urandom は暗号学的に安全な乱数
  • 完全にローカルで完結

強力なパスワードなどを作りたい時(?)などに使ってみてください。^^

https://forms.gle/as6uoqdjNw7MwL376