2

たとえば、FreeBSDでは、パスワードは次のように/etc/master.passwdに保存されます。

$1$7wtGfwgp$772bEQInetnJKUNtLM0Xt/

私が使用したパスワードは「Test11」でした。私が理解しているように、$ 1 $は、ハッシュ化されたMD5暗号であることを意味しますか?彼がソルトとパスワードを認識していてmd5sumを使用している場合、どのようにして最終ハッシュ「772bEQInetnJKUNtLM0Xt /」を思い付くことができますか?私が理解しているように、それは次のようなものでなければなりません:

$ echo -n $(echo -n 7wtGfwgp)$(echo -n Test11) | md5sum

..しかし、これは完全には一致していません。私は何が間違っているのですか?

PS私はUNIXライクなオペレーティングシステムの下でのパスワードハッシュシステムを理解するためにこれを求めています。

4

2 に答える 2

3

私はLinuxを使用しており、FreeBSDが実際に同じアルゴリズムを使用しているかどうかはわかりませんが、これらの情報源を確認できます(FreeBSDでも同じことが期待できます)。

最後のページに基づいて、このPHPスクリプトは期待する出力を生成します(パスワードとソルトが与えられた場合)。

<?php
$password = 'Test11';
$salt = '$1$7wtGfwgp$';
echo 'Crypt hash: ' . crypt($password, $salt) . "\n"
?>

たとえばPythonを使用して同じことを行うことができます。

import crypt

password = 'Test11'
salt = '$1$7wtGfwgp$'
print(crypt.crypt(password, salt))

このPythonドキュメントページに基づく:

ウィキペディアの記事に基づく:

cryptあなたはここで例えばここで関数のソースを見ることができます:

ちなみに、ここに素晴らしいオンラインハッシュジェネレータがあります:

お役に立てれば。

于 2011-12-11T04:05:03.160 に答える
0

ハッシュが暗号化の一部であっても、ハッシュと暗号化は別のものです;)

したがって、それを暗号化したい場合は、icyrockが投稿したようにしてください。md5sumgmd5sumfreebsd coreutilsでは)一部の入力に関するハッシュサム(RFC 1321)のみを作成します。(いくつかの)暗号化コードのように、このハッシュを使用して次のステップで暗号化することはありません。

そのため、コードは結果としてまったく異なるものを提供します。

于 2014-01-16T20:46:45.957 に答える