ユーザーのパスワードを取得するにはどうすればよいですか?
u = User.objects.get(username__exact=username)
print u.password
ディスプレイsha1$f0971$441cac8f604d49869e33ca125a76253a02fef64e
このエンコードされた文字列からパスワードを見つける機能はありますか?
ユーザーのパスワードを取得するにはどうすればよいですか?
u = User.objects.get(username__exact=username)
print u.password
ディスプレイsha1$f0971$441cac8f604d49869e33ca125a76253a02fef64e
このエンコードされた文字列からパスワードを見つける機能はありますか?
いいえ。設計上、不可能です。しかし、とにかくそれをする必要は決してないはずです。
セキュリティ上の制限により、パスワードハッシュ方式は一方向です。そのユーザーのパスワードをリセットする必要があります。
set_password(raw_password)
この方法を使用して、ユーザーに新しいパスワードを与えてみてください。save()
変更をデータベースに確実に保存するために、メソッドを呼び出すことを忘れないでください。
u = User.objects.get(username__exact=username)
u.set_password(raw_password)
u.save()
パスワードが正しいかどうかは、次の方法で確認できます。
u.check_password("your password")
この方法で、u.set_password("you password")
すべての問題を解決します。
sha1$f0971$441cac8f604d49869e33ca125a76253a02fef64e
は:
ハッシュ関数アルゴリズム$
ソルト$
ハッシュコード
番号。あるべきではありません。セキュリティの一環として、パスワードは保存される前に一方向性関数を介して渡されるため、データベースが危険にさらされてもパスワードは公開されません。
あなたができることは、ユーザーのパスワードをあなたが知っているものに置き換えることです。これが(良い)サイトの「パスワードを忘れた」機能の仕組みです。古いパスワードではなく、新しいランダムなパスワードを送信します。アクセスできないためです。
いいえ、フィールドにはパスワードのソルトハッシュが含まれています。文字列から、SHA1関数であることがわかります。パスワードをお持ちの場合は、フットプリントとして機能するのと同じハッシュ値を生成できます。セキュリティ上の理由から、経済的な方法でパスワードを回復する方法があるはずです(ブルートフォース攻撃は可能ですが、時間がかかります)。
そのパスワードはソルトハッシュに変換されるため、既存のパスワードを取得する方法はありません。