すべてのパスワードをハッシュ形式で保存しています。これらのパスワードを取得する必要があります。
私のパスワードは「123456」です。これをハッシュ化された「3453474852dfdsfdsfdf」値として保存します。
ハッシュ値から元のパスワードを取得する必要があります。(パスワードを取得)。
どうやってやるの?。私はSHA1ハッシュアルゴリズムをやっています。
これは不可能です。SHA1 は、非常に慎重かつ慎重に、一方向関数です。
元のパスワードを復元しようとしているのはなぜですか? 入力パスワードをハッシュしてハッシュ値を比較するだけなので、認証には必要ありません。
ユーザーがパスワードを忘れたことが原因である場合、標準的な方法では、ランダム化されたリセット リンクを生成し、それをユーザーに電子メールで送信しているようです。
それはできません。それがハッシュ関数のポイントです。実際、複数のパスワードで同じハッシュが得られる可能性があるため、このハッシュを与える文字列が見つかったとしても、それは正しいものではない可能性があります。
パスワードを見つける必要がある場合は、RSA などのハッシュを使用しないでください。
あなたが読むためのいくつかのリンク:
このトピックに関する 2 つの興味深い記事:パスワードの保存が間違っている可能性が高く、レインボー ハッシュ クラッキング...
したがって、何を計画しているかによって異なります (パスワードを安全に保管するか、サイト上のユーザーのパスワードを保管するかなど)。前者の使用法については、KeePassの仕組み (オープン ソース) を参照してください。
できません。それがハッシュの目的です。そのため、多くのサイトにはパスワードをリセットするオプションがあります (つまり、提供した新しいパスワードのハッシュをデータベースに入れます)。通常、現在のパスワードを取得するオプションはありません(つまり、メールで送信されます)。
ウェブサイトがこの機能を提供している場合、それはパスワード ハッシュを保存しておらず、プレーンテキストまたは暗号化されたパスワードを保存していることを意味します。ハッシュを保存することがベスト プラクティスであるため、パスワードの取得を提供するサイトを避ける必要があります。
そして、そのようなサイトを自分で開発することは避けるべきです ;-)
他のコメントが述べているように、理論的にはできません。
Rick が言おうとしていたことは、ハッシュに SHA1 アルゴリズムを使用していて、ソルトを使用していることを攻撃者が知っていれば、ハッシュとパスワードのマッピングを作成して、パスワードを取得しようとする可能性があるということです。
しかし、あなたの質問に答えると、いいえ、これは簡単にはできません。
失礼なことを言うつもりはありませんが、そもそもなぜパスワードをハッシュ化していたのか、本当に理解できましたか?