ランダムな文字列を生成する方法は?

ランダムな文字列を生成する方法は?

任意の文字列(パスワード、ユーザー名など)を生成したいと思います。希望の長さ(13文字など)を指定できる必要があります。

どのツールを使用できますか?

(セキュリティとプライバシーのために、ウェブサイトでオンラインで文字列を生成するのではなく、オフラインで文字列を生成する方がよいでしょう。)

ベストアンサー1

私の好きな方法は、望ましくない文字を使用し/dev/urandomtr削除することです。たとえば、数字と文字のみを取得するには:

tr -dc A-Za-z0-9 </dev/urandom | head -c 13; echo

または、含むより多くのキャラクターOWASPパスワード特殊文字リスト:

tr -dc 'A-Za-z0-9!"#$%&'\''()*+,-./:;<=>?@[\]^_`{|}~' </dev/urandom | head -c 13; echo

tr入力について不満がある場合、追加してみてくださいLC_ALL=Cこのように:

LC_ALL=C tr -dc 'A-Za-z0-9!"#$%&'\''()*+,-./:;<=>?@[\]^_`{|}~' </dev/urandom | head -c 13; echo

trより読みやすいグラフィック文字クラスもあります。これをCロケールに制限すると、上記の明示的な文字リストと同じタイプの出力が生成されます。

LC_ALL=C tr -dc '[:graph:]' </dev/urandom | head -c 13; echo

おすすめ記事