0

ユーザーからパスワード入力を取得し、passlib.hash ライブラリを使用してパスワードを暗号化する予定です。

私はパスワードを正常に暗号化することができ、検証機能の使用法について文書に記載されていますが、入力された元のパスワードを知りたいのですが、それは可能ですか?

例: ユーザーが入力したパスワード: abcd passlib を使用して変数ハッシュに暗号化されたパスワード パスワード ハッシュを復号化して値 abcd を取得するにはどうすればよいですか?

以下のサンプル コードを参照してください。

    print "Enter a password "
    passw = raw_input()
    print "password entered is ", passw
    hash = sha256_crypt.encrypt(passw)
retrivepass=?

元のパスワードを取得することはできますか? そうでない場合、最良の代替手段は何ですか? 前もって感謝します

4

3 に答える 3

0

ユーザーがアクセスしたいときにハッシュを保存します。

valid = False
while not valid:
    passw = raw_input("Enter your password")
    valid = sha256_crypt.verify(passw, hash)
于 2013-09-08T05:40:13.160 に答える
0

ハッシュは、データの標準ブロックを暗号化するプロセスであり、多くの場合、無限に長い入力でも同じ長さの出力になります。SHA256入力データを 256 ビットの出力データにエンコードします。

いつでもパスワードをハッシュして保存できます。ただし、パスワードを取り戻すことはできません。理想的な方法は、パスワードを再度取得してハッシュし、保存されているハッシュ値と比較することです。

于 2013-09-08T05:42:00.643 に答える
0

元のパスワードを取得することはできますか?

いいえ。パスワード ハッシュ関数の目的は、ユーザーのパスワードを実際に保存しなくてもユーザーを認証できるようにすることです。

ハッシュ関数は一方向であるため、出力が与えられた場合、入力が何であったかを推測することはできません。2 つの数値を加算するようなものと考えてください。2 + 2 = 4 であることはわかっていますが、与えられた 4 から、足し合わせた 2 つの数が 2 と 2 であるとはわかりません。

そうでない場合、最良の代替手段は何ですか?

ほとんどの場合、暗号化は必要ありません。Bcrypt や PBKDF2 などの優れたパスワード ハッシュ関数が必要です。

于 2013-09-08T05:34:45.993 に答える