私はLinuxとPHPで暗号化と復号化を学んでいます。したがって、opensslとこれがパスワードハッシュを生成する方法について3つの質問があります。
1-linuxコマンドを使用してパスワードを生成したとします。
openssl passwd
最初の観察は、ハッシュが作成されるたびに異なることです!なぜそんなことですか?塩のせいですか?これが私の最初の質問です。
2- 2番目の質問は、このパスワードをテストすることです。このパスワードの正確性をテストし、それが正しいかどうかに関するバイナリの答えを取得したいとします。 opensslを使用してこれを行うにはどうすればよいですか?私の質問が理解できない場合、何がopenssl passwd
役に立ちますか?
3 - ハッシュを使用してパスワードを暗号化し、openssl passwd
毎回ランダムなソルトを追加する場合、opensslはどのようにパスワード(または他のプログラム)を復号化しますか?
ありがとうございます。
ベストアンサー1
openssl はアルゴリズムとソルトを使用してパスワードを暗号化します。塩を提供しない場合は、ランダムに選択されます。
塩は結果のハッシュに与えられます。
例えば
openssl passwd -1 foo
$1$pyuddMjp$3.deTnHdrVVVLoh5zkQ0B.
どこ
- 1はプロトコルです(ここではmd5です)。
- pyuddMjpは塩です
あなたがpasswd(例えば、foo)を知っているかどうかを確認するには、saltでpasswdオプションを使用して結果のハッシュを比較する必要があります。
x=バー
openssl passwd -1 -salt pyuddMjp $x $1$pyuddMjp$kNkQHWoF8WVh7Oxvae5YX1
x=fooの場合
openssl passwd -1 -salt pyuddMjp $x $1$pyuddMjp$3.deTnHdrVVVLoh5zkQ0B。