2022-01-03に更新

[Linux] ランダム文字列

Linux環境にてパスワードやパスフレーズ等の設定に使うランダム文字列を生成

条件:8文字、アルファベット大文字 (I,Oを除く)、小文字 (lを除く)、数字 (0-9)、記号 (#,?,!,_)を入れること

cat /dev/urandom | tr -dc 'a-km-zA-HJ-NP-Z0-9#?_!' | fold -w 8 | head -n 300 | grep '[#?_!]' | grep [A-Z] | grep [a-z] | grep [0-9] | grep -vE '(.)\1{2}' | uniq | shuf -n 1

cat /dev/urandom ランダムな文字列を生成
tr -dc 'a-km-zA-HJ-NP-Z0-9#?_!' 条件の含めたい文字
fold -w 8 8文字
head -n 300 行頭から300文字
grep '[#?_!]' | grep [A-Z] | grep [a-z] 条件に合致しているか絞り込み
grep -vE '(.)\1{2}' 2回以上の繰り返しを除く
uniq 念のため重複行の取り除き
shuf -n 1 ランダムの1行を出力

実行例

$ cat /dev/urandom | tr -dc 'a-km-zA-HJ-NP-Z0-9#?_!' | fold -w 8 | head -n 300 | grep '[#?_!]' | grep [A-Z] | grep [a-z] | grep [0-9] | grep -vE '(.)\1{2}' | uniq | shuf -n 1
kVp#w3u0

もうすこし簡略化できるかも

ツイッターでシェア
みんなに共有、忘れないようにメモ

dsta50

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント