1

Galaxy フレームワークからパスワードを取得して認証しようとしています。ハッシュ(sha1)形式のパスワードを正常に取得しました。ユーザーが入力したパスワードでこれを認証するにはどうすればよいですか? 私の最初の推測は、hashed(sha1) を通常の文字列に変換して認証することです。それは可能ですか?もしそうなら、どうすればそれを文字列に変換できますか?

4

2 に答える 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 に答える