有効なパスワードを持っていて、ハッシュ(/ etc / passwd)を見ることができます。一致するものが見つかるまで別のアルゴリズムを手動で試すことなく、パスワードのハッシュに使用されるハッシュアルゴリズムを見つけるにはどうすればよいですか?
承認された回答:
これはcrypt(3)
に記載されています のマンページ。経由で見つけることができます。 shadow(5)
のマンページ、またはpasswd(5)
の。これらのリンクは、最新のLinuxベースのシステムに適しています。そこにある説明:
塩の場合 は、「$ 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
のDES(128文字のパスワードをサポートするように拡張され、最大178文字の長さのハッシュを含む)、またはBSDI拡張DES(_
を使用) プレフィックスの後に19文字のハッシュが続きます。
一部のディストリビューションでは、libxcryptを使用して、さらに多くのメソッドをサポートおよび文書化しています。
-
y
:yescrypt -
gy
:gost-yescrypt -
7
:scrypt -
sha1
:sha1crypt -
md5
:SunMD5
他のプラットフォームは他のアルゴリズムをサポートしているため、crypt
を確認してください そこにマンページ。たとえば、OpenBSDのcrypt(3)
idを使用して識別するBlowfishのみをサポートします 「2b」。