有効なパスワードがあり、ハッシュを確認できます(/ etc/passwd)。一致するものが見つかるまで手動で別のアルゴリズムを試行せずに、パスワードのハッシュに使用されるハッシュアルゴリズムを見つけるにはどうすればよいですか?
これは crypt(3)
のマンページ に記載されていますviashadow(5)
のマンページ 、または passwd(5)
's 。これらのリンクは、最新のLinuxベースのシステムに適しています。説明があります:
saltが "$ id $"で始まり、オプションで "$"で終了する文字列が続く文字列である場合、結果は次の形式になります。
_$id$salt$encrypted
_idは、DESの代わりに使用される暗号化方式を識別し、これにより、残りのパスワード文字列の解釈方法が決定されます。idの以下の値がサポートされています。
_ID | Method ───────────────────────────────────────────────────────── 1 | MD5 2a | Blowfish (not in mainline glibc; added in some | Linux distributions) 5 | SHA-256 (since glibc 2.7) 6 | SHA-512 (since glibc 2.7)
_
bcrypt
とも呼ばれるBlowfishは、接頭辞_2
_、_2b
_、_2x
_、および_2y
_でも識別されます( を参照) PassLibのドキュメント )。
したがって、ハッシュされたパスワードが上記の形式で格納されている場合、id;を見ると、使用されているアルゴリズムを見つけることができます。それ以外の場合は、crypt
のデフォルトDESアルゴリズム(13文字のハッシュを使用))、または「大きな」crypt
's DES( 128文字のパスワードをサポートするように拡張され、ハッシュの長さは最大178文字です)、またはBSDI拡張DES(接頭辞__
_の後に19文字のハッシュが続く)。
一部のディストリビューションでは、 libxcrypt を使用しており、 documents をサポートするメソッドがさらにいくつかあります。
y
:yescryptgy
:gost-yescrypt7
_:scryptsha1
_:sha1cryptmd5
_:SunMD5他のプラットフォームは他のアルゴリズムをサポートしているため、そこでcrypt
マンページを確認してください。たとえば、 OpenBSDのcrypt(3)
は、id“ 2b”を使用して識別するBlowfishのみをサポートしています。