0

すべてのパスワードをハッシュ形式で保存しています。これらのパスワードを取得する必要があります。

私のパスワードは「123456」です。これをハッシュ化された「3453474852dfdsfdsfdf」値として保存します。

ハッシュ値から元のパスワードを取得する必要があります。(パスワードを取得)。

どうやってやるの?。私はSHA1ハッシュアルゴリズムをやっています。

4

8 に答える 8

14

これは不可能です。SHA1 は、非常に慎重かつ慎重に、一方向関数です。

元のパスワードを復元しようとしているのはなぜですか? 入力パスワードをハッシュしてハッシュ値を比較するだけなので、認証には必要ありません。

ユーザーがパスワードを忘れたことが原因である場合、標準的な方法では、ランダム化されたリセット リンクを生成し、それをユーザーに電子メールで送信しているようです。

于 2008-11-10T06:38:36.580 に答える
3

できません。(暗号化とは対照的に)ハッシュ関数のポイントは、それが一方向のプロセスであることです。つまり、同じ値にハッシュされる複数のパスワードが存在する可能性があり、ハッシュから元のパスワードに進む方法はありません。

これは、双方向暗号化に必要な「マスターパスワード」やその他の秘密を必要としないため便利ですが、ハッシュ値から元のパスワードを取得することはできません。本当にパスワードが必要な場合は、ハッシュの代わりに暗号化/復号化を使用する必要があります。

于 2008-11-10T06:39:01.897 に答える
3

それはできません。それがハッシュ関数のポイントです。実際、複数のパスワードで同じハッシュが得られる可能性があるため、このハッシュを与える文字列が見つかったとしても、それは正しいものではない可能性があります。
パスワードを見つける必要がある場合は、RSA などのハッシュを使用しないでください。

あなたが読むためのいくつかのリンク:

于 2008-11-10T06:40:07.153 に答える
3

このトピックに関する 2 つの興味深い記事:パスワードの保存が間違っている可能性が高く、レインボー ハッシュ クラッキング...

したがって、何を計画しているかによって異なります (パスワードを安全に保管するか、サイト上のユーザーのパスワードを保管するかなど)。前者の使用法については、KeePassの仕組み (オープン ソース) を参照してください。

于 2008-11-10T09:34:58.580 に答える
2

できません。それがハッシュの目的です。そのため、多くのサイトにはパスワードをリセットするオプションがあります (つまり、提供した新しいパスワードのハッシュをデータベースに入れます)。通常、現在のパスワードを取得するオプションはありません(つまり、メールで送信されます)。

ウェブサイトがこの機能を提供している場合、それはパスワード ハッシュを保存しておらず、プレーンテキストまたは暗号化されたパスワードを保存していることを意味します。ハッシュを保存することがベスト プラクティスであるため、パスワードの取得を提供するサイトを避ける必要があります。

そして、そのようなサイトを自分で開発することは避けるべきです ;-)

于 2008-11-10T06:57:37.790 に答える
1

ソルトを使用していない場合は、辞書攻撃を使用してパスワードを破ることができます。

編集:彼の最初の質問は、彼が保存したパスワードを取得する方法であることは理解していますが、質問のタイトルが暗示するより一般的な質問に対する解決策を提供することは私を楽しませてくれます。

于 2008-11-10T06:54:50.587 に答える
0

他のコメントが述べているように、理論的にはできません。

Rick が言おうとしていたことは、ハッシュに SHA1 アルゴリズムを使用していて、ソルトを使用していることを攻撃者が知っていれば、ハッシュとパスワードのマッピングを作成して、パスワードを取得しようとする可能性があるということです。

しかし、あなたの質問に答えると、いいえ、これは簡単にはできません。

于 2008-11-10T07:19:08.510 に答える
0

失礼なことを言うつもりはありませんが、そもそもなぜパスワードをハッシュ化していたのか、本当に理解できましたか?

于 2008-11-10T09:49:14.417 に答える