26

ユーザーのパスワードを取得するにはどうすればよいですか?

u = User.objects.get(username__exact=username)
print u.password

ディスプレイsha1$f0971$441cac8f604d49869e33ca125a76253a02fef64e

このエンコードされた文字列からパスワードを見つける機能はありますか?

4

6 に答える 6

47

いいえ。設計上、不可能です。しかし、とにかくそれをする必要は決してないはずです。

于 2012-05-16T15:57:18.957 に答える
16

セキュリティ上の制限により、パスワードハッシュ方式は一方向です。そのユーザーのパスワードをリセットする必要があります。

set_password(raw_password)この方法を使用して、ユーザーに新しいパスワードを与えてみてください。save()変更をデータベースに確実に保存するために、メソッドを呼び出すことを忘れないでください。

u = User.objects.get(username__exact=username)
u.set_password(raw_password)
u.save()
于 2012-05-16T15:58:06.320 に答える
7

パスワードが正しいかどうかは、次の方法で確認できます。

u.check_password("your password")

この方法で、u.set_password("you password")すべての問題を解決します。

sha1$f0971$441cac8f604d49869e33ca125a76253a02fef64eは:

ハッシュ関数アルゴリズム$ソルト$ハッシュコード

于 2019-09-17T16:00:34.600 に答える
6

番号。あるべきではありません。セキュリティの一環として、パスワードは保存される前に一方向性関数を介して渡されるため、データベースが危険にさらされてもパスワードは公開されません。

あなたができることは、ユーザーのパスワードをあなたが知っているものに置き換えることです。これが(良い)サイトの「パスワードを忘れた」機能の仕組みです。古いパスワードではなく、新しいランダムなパスワードを送信します。アクセスできないためです。

于 2012-05-16T15:57:50.917 に答える
4

いいえ、フィールドにはパスワードのソルトハッシュが含まれています。文字列から、SHA1関数であることがわかります。パスワードをお持ちの場合は、フットプリントとして機能するのと同じハッシュ値を生成できます。セキュリティ上の理由から、経済的な方法でパスワードを回復する方法があるはずです(ブルートフォース攻撃は可能ですが、時間がかかります)。

于 2012-05-16T16:01:24.637 に答える
0

そのパスワードはソルトハッシュに変換されるため、既存のパスワードを取得する方法はありません。

于 2021-09-18T14:55:20.903 に答える