2017-06-05 12 views
3

現在、パスワードが生成されています。つまり、日付のハッシュです。私は、大文字、小文字、数字、および特殊文字をすべて最小10文字の長さに追加することで、この生成されたパスワードのセキュリティを向上させたいと考えています。Bashでパスワードを作成する

私が現在持っているものは以下の通りです。ご覧のとおり、PASSWORD変数に出力を割り当てます。

PASSWORD=$(date +%s | sha256sum | base64 | head -c 15) 

私は私が私のbashスクリプト内の関数を作成する必要がある場合に合うように、私はこのインラインを行うことができればわからないよ、または?それも可能ですか?

事前に感謝します。

password=$(tr -dc 'A-Za-z0-9!?%=' < /dev/urandom | head -c 10) 

echo "$password" 

出力(例)::trhead

+0

エントロピーの不足のため、現在持っているものは非常に弱いです。エントロピーはデータと同等です。これは簡単に無理やり強制することができます。以下のCyrusからの答えは、入力エントロピーのより良いソース、/ dev/urandomを使用しています。 – TheGreatContini

+0

も参照してください:https://stackoverflow.com/questions/30947873/random-password-generate-in-shell-script-withone-special-character – codeforester

+0

pwgenをインストールして使用することをお勧めします。 – ArturFH

答えて

6

 
k?lmyif6aE 

trは、Linuxの特別なランダムデバイス/dev/urandomから標準入力経由でバイトを読み込み、すべてのバイト/文字を削除しますが、 AZ,az,0~9および!?%=である。 trはstdout経由で出力をheadのstdinに送信します。 headは10バイト後に出力をカットします。

+0

それはまさに私が後にしていることです。私が学ぶことができるので上記を説明している仮面ライダーの言葉を求めることができますか? –

+1

@GraemeLeighfield:私は自分の答えを更新しました。 – Cyrus

関連する問題