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


11

有効なパスワードがあり、ハッシュを確認できます(/ etc / passwd)。一致するものが見つかるまで手動で別のアルゴリズムを試行せずに、パスワードのハッシュに使用されるハッシュアルゴリズムを見つけるにはどうすればよいですか?


1
どのUnixバリアントを使用していますか?
クサラナンダ

3
にハッシュが表示されていることに非常に驚いています/etc/passwd。私はすべてのUnix / Linuxバリアントが/etc/shadow数年前に分割に移行したと思いました。(私はそのようなシステムがまだハッシュをサポートしpasswdていることを知っていますが、それをそこに置くユーティリティをもう知りません。おそらく組み込みシステムでしょうか?
roaima

OpenWrt Backfire 10.03です。ハッシュはまだ/etc/passwdここに保存されています。ただし、これにより問題が変わることはありません。そうですか?
Dorin

1
参考までに:BSDには、roaimaという2つのBerkeley DBファイルがあります。まだ分​​割/etc/shadowされていますが、分割されておらず、その名前のファイルはありません。
JdeBP 2018年

回答:


27

これは、に記載されてcrypt(3)のmanページあなたが見つけることができ、経由で shadow(5)manページ」、または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また、接頭辞によって識別され22b2x、及び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そこでマンページを確認してください。たとえば、OpenBSDcrypt(3)はBlowfishのみをサポートしており、これはID「2b」を使用して識別します。


2
DESベースのパスワードの長ところで、常に13文字であり、同様の英数字で構成さ./。最初の2文字はソルトで、残りの11文字はハッシュ値(一種)です。そして、それがサポートしcryptているアルゴリズムの中で唯一の弱点であり、強力なパスワードを選択してそれを補償することはできません。
kasperd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.