Galaxy フレームワークからパスワードを取得して認証しようとしています。ハッシュ(sha1)形式のパスワードを正常に取得しました。ユーザーが入力したパスワードでこれを認証するにはどうすればよいですか? 私の最初の推測は、hashed(sha1) を通常の文字列に変換して認証することです。それは可能ですか?もしそうなら、どうすればそれを文字列に変換できますか?
質問する
910 次
2 に答える
2
できません。ハッシュ コードからプレーン テキストを取得するのは非常に困難です。これがまさに、ハッシュを発明した理由です。反対のことを試してください: プレーンテキストをハッシュに変換してから比較してください。
変換方法:
import hashlib
s = "plain"
h = hashlib.sha1(s).hexdigest()
于 2013-01-07T16:01:48.227 に答える
2
...私の最初の推測は、ハッシュされた(sha1)を通常の文字列に変換することです...
これは、暗号化ハッシュ関数が (とりわけ) 防止しようとするものです。この特性は、pre-image resistanceと呼ばれます。
基本的な手順は逆になります。
- ユーザー入力を受け取る
- ユーザー入力に対してハッシュを計算する
- ハッシュされたユーザー入力を保存された資格情報/ハッシュと比較します
于 2013-01-07T15:58:26.320 に答える