パスワードをハッシュするために使用されるハッシュアルゴリズムを見つける方法は?

パスワードをハッシュするために使用されるハッシュアルゴリズムを見つける方法は?

私は動作するパスワードを持っていて、ハッシュ(/ etc / passwd)を見ることができます。一致するものが見つかるまで、他のアルゴリズムを手動で試さずにパスワードをハッシュするために使用されるハッシュアルゴリズムを見つける方法は?

ベストアンサー1

この内容は次のように記録されます。crypt(3)マンページ、あなたは見つけることができます渡す shadow(5)マンページまたはpasswd(5)~の。このリンクは、最新のLinuxベースのシステムの説明です。

もし文字 "$ で始まる文字列です。ID$"の後にオプションで"$"で終わる文字列が続く場合、結果は次の形式になります。

$id$salt$encrypted

IDDES以外の暗号化方法を識別し、残りのパスワード文字列を解釈する方法を決定します。次の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プレフィックス22bと で識別されます2x2y参照:PassLib ドキュメント)。

したがって、ハッシュされたパスワードが上記の形式で保存されている場合は、次のようにして使用されたアルゴリズムを見つけることができます。ID;それ以外の場合は、デフォルトのcryptDESアルゴリズム(13文字のハッシュを含む)または「大きい」cryptDES(128文字のパスワードサポートで拡張、最大178文字のハッシュ長)またはBSDI拡張DES(_プレフィックスの後に19文字のハッシュ)。

一部のディストリビューションではlibxcryptそれはサポートしています文書より多くの方法があります:

  • y: はい暗号化
  • gy:gost-yescrypt
  • 7: 暗号化
  • sha1:sha1crypt
  • md5:SunMD5

他のプラットフォームは異なるアルゴリズムをサポートしているので、cryptそこのマンページをチェックしてください。例えば、オープンBSDcrypt(3)Blowfishのみがサポートされています。ID「2b」。

おすすめ記事