1

ユーザー名とパスワード (MySQL データベースに保存されています) を忘れた場合に備えて、ユーザーに電子メールを送信する機能を含むログイン スクリプトを実装しています。スクリプトのデフォルトの動作は、ユーザー名と新しいパスワードを送信することです。つまり、一時的なパスワードが生成されます。

ユーザーがパスワードをリセットする必要がないように、代わりに現在のパスワードを電子メールで送信する方法があるかどうか疑問に思っています。現時点ではパスワードは暗号化されていますが、これがどのように行われるかはわかりません。パスワードの形式は次のとおりです。

*2D4CE9DDA883E4FBE985A3439D9DCDCBD88367A0

そのため、現在のパスワードを送信しようとすると、暗号化されたパスワードが送信されます。

リマインダー メールの送信時にパスワードを解読する方法はありますか、それともそのままにしておく必要がありますか?

ありがとう、

ニック

4

2 に答える 2

6

たとえ可能であっても、これを行うべきではありません(私は疑います)。電子メールは非常に安全ではなく、ユーザーはパスワードを再利用する傾向があります。

  1. ユーザーはパスワードを考え出し、あなたのサイトを含む多数のサイトでそれを使用します
  2. パスワードを忘れた場合、パスワードを記載したメールを送信します
  3. 攻撃者はその電子メールを傍受し、ユーザーが使用するすべてのサイトでユーザーのパスワードを取得します

他の人と同じように新しいパスワードを与えるだけです (そして、次回のログイン時にパスワードを変更するよう奨励または要求します)。

于 2012-04-26T15:42:59.023 に答える
4

パスワードはおそらくハッシュ化されており、暗号化されていません。いいえ、それらを復号化することはできません。それらが実際に暗号化されている場合は、それらを復号化するためのキーが必要です。いずれにせよ、ハッシュ (SHA1 の可能性が最も高い) の方がより安全な方法です。このコンテキストでのキーワード「salt」もチェックしてください。

彼らのために新しい一時パスワードを生成し、最初のログイン後に強制的に変更するだけです。正当な理由でそれを行う通常の方法です。一部の大手ソフトウェア企業のように、セキュリティよりも快適さを重視してはいけません。

于 2012-04-26T15:44:51.857 に答える