私は投稿を読んでいました ハッシュされたパスワードと同じフィールドにソルトを格納することは安全/賢明ですか? :
$argon2i$v=19$m=65536,t=3,p=1$YOtX2//7NoD/owm8RZ8llw==$fPn4sPgkFAuBJo3M3UzcGss3dJysxLJdPdvojRF20ZE=
私の理解は、
p=
はパラメータであり、p=
はソルトで、最後の部分はハッシュされたパスワードです。 "
ハイライト部分がわかりません。思った$
バリアント、バージョン、パラメータ、ソルト、ハッシュをスライスするため、次のようになります。
1
YOtX2//7NoD/owm8RZ8llw==
fPn4sPgkFAuBJo3M3UzcGss3dJysxLJdPdvojRF20ZE=
ここでソルトとハッシュを識別するのは正しいですか?
$argon2i$v=19$m=65536,t=3,p=1$YOtX2//7NoD/owm8RZ8llw==$fPn4sPgkFAuBJo3M3UzcGss3dJysxLJdPdvojRF20ZE=
argon2{i}
3つのタイプi、d、id
Argon2dはより高速で、データに依存するメモリアクセスを使用します。データの依存関係により、サイドチャネルがすぐに有効になります。これは、サイドチャネル攻撃の脅威がない暗号通貨とアプリケーションに適しています。
Argon2iは、データに依存しないメモリアクセスを使用します。これは、パスワードハッシュおよびパスワードベースのキー導出に適しています。
Argon2id最初の反復の前半ではArgon2iとして機能し、残りの部分ではArgon2dとして機能します。これにより、サイドチャネル保護と時間メモリのトレードオフの両方が可能になります。
また、違いがわからない場合、またはサイドチャネル攻撃を実行可能な脅威と見なす場合は、 Argon2id を使用します。
より良いアドバイスUse Argon2id unless you know you have a good reason to use any other mode
by MechMK1
v=19
-バージョンの場合はv
、ここではバージョンは19です
m=65536
-m
は可変メモリコストを表す整数で、ここでは65536キビバイトです。t
-線形反復での可変タイミングコストを表す整数です。ここでは3です。p=1
-p
は並列化の量を制御するための並列化メカニズムですYOtX2//7NoD/owm8RZ8llw==
fPn4sPgkFAuBJo3M3UzcGss3dJysxLJdPdvojRF20ZE=
$
記号で分割すると、最後のトークンがダイジェストになり、最後のトークンの前のトークンがソルトになります。