6

パスワードがハッシュ値として保存されている場合、ユーザーはパスワードを自分自身に電子メールで送信するように要求できますか?

ハッシュ値を適切な情報 (および必要な情報) を使用してクリア テキスト値に変換する方法はありますか?

ユーザーが 2 つのサイトに同じパスワード ハッシュ値を保存している場合、パスワードは両方のサイトで同じになりますか?

4

8 に答える 8

32

パスワードのハッシュのみを保存している場合は、いいえ。...とにかく、パスワードの適切にソルトされたハッシュのみを保存する必要があります。

パスワード リセット メカニズムは適切な代替手段です。

于 2009-06-18T16:09:53.053 に答える
10

一般に、ハッシュ化されたパスワードは取得できません (これはハッシュ関数によって異なります。安全なハッシュは取得できません)。2 つのサイトで同じハッシュを使用している場合、同じパスワードを使用している可能性があります。これは、サイトで使用されているハッシュ ソルトや方法などによって異なります。

パスワードが優れたハッシュ システムに安全に保存されている場合、プロバイダはパスワードをメールで送信することはできません。パスワードを忘れた場合は、パスワードをリセットする必要があります。

于 2009-06-18T16:09:03.880 に答える
7

要するに、いいえ。ほとんどのハッシュ アルゴリズムでは、同じ出力を持つ複数の入力を持つことができます。多くの場合、パスワードのリセット オプションを提供することをお勧めします。

于 2009-06-18T16:08:43.083 に答える
3

クリアテキストのパスワードを回復する簡単な方法があれば、最初からパスワードをハッシュしても意味がありません。その時点で、base64またはROT13を使用することもできます。(そうしないでください!)

他の人が述べたように、他のパスワード回復方法を使用してください。クリアテキストのパスワードにアクセスする正当な理由はありません。

2つのサイトのハッシュが同じである場合、ユーザーは両方で同じパスワードを持っている可能性があります。100%保証されているわけではありませんが、ハッシュの衝突が発生する可能性がありますが、それは非常にありそうにありません。

于 2009-06-18T16:12:45.863 に答える
3

さまざまな種類のハッシュ アルゴリズムがあります。いくつかは他よりも安全です。MD5 は人気がありますが、安全ではありません。SHA ファミリは、もう 1 つのより安全なアルゴリズム セットです。

定義上、ハッシュは一方向関数です。元に戻すことはできません。

http://en.wikipedia.org/wiki/Sha-1

于 2009-06-18T16:11:02.790 に答える
2

一般的に使用されるハッシュを逆にする方法はありません。ブルートフォース (考えられるすべてのパスワードを試す) か、単語リスト (一般的に使用されるパスワードのリストを使用) を組み合わせてブルート フォースを使用して速度を上げることができますが、それでも非常に遅く、CPU を集中的に使用するプロセスです。

多くのサイトで使用されている最善の方法は、ユーザー名と電子メールを入力する「パスワード リセット」ボタンを作成することです。それらが一致すると、ランダムなパスワードが送信され、ログイン ページへのリンクが表示され、ログインできます。ランダムなパスワードを使用して、パスワードを変更します。

于 2009-06-18T17:25:21.150 に答える
0

これを行うには、次のフィールドを持つモデルが必要です。

Hashed_password
Salt

そして、パスワードをハッシュするメソッド user を知る必要があります (ここでは SHA1 を使用します) 次に、コントローラーで定義できます。

def self.encrypted_password(password, salt)
   string_to_hash = password + "wibble" + salt
   Digest::SHA1.hexdigest(string_to_hash)
end

次に比較できます。

user.Hashed_password == encrypted_password(password, user.salt)

True は、「password」がユーザー「user」のパスワードであることを意味します

于 2010-07-05T23:34:37.217 に答える
-1

パスワードのハッシュを保存する背後にある一般的な考え方は、データベースにアクセスできる人からでも、パスワードが安全であることを確認することです。信頼は決して暗黙的ではありません。ハッシュは一方向のアルゴリズムであるため、ハッシュコードから元のパスワードを取得する方法はありません。通常、ユーザーがハッシュとして保存されたパスワードを復元する必要がある場合は、秘密の質問をして、一時パスワードを電子メールで送信するか、パスワードを変更できる一時リンクを電子メールで送信する必要があります。これにより、パスワードがクリアテキストで保存されることはなく、信頼できると見なされる可能性のある人も含め、すべての詮索好きな目から安全になります。

于 2009-06-18T16:20:11.870 に答える