2016-12-01 22 views
-1

私はFlaskを使用して小さなWebサービスを開発しています。ユーザパスワードはgenerate_password_hashを使用した後にmysqlに保存されます。 like:password = "123345"、mysqlに格納されている値はgenerate_password_hash(12345)です。generate_password_hashでハッシュされたパスワードを解読する方法は?

私はパスワードを振り返るための機能を実装しませんが、保存されたパスワードのハッシュを解除するときに問題が発生します。

どのように変換するgenerate_password_hash(12345)から12345

+4

パスワードハッシングのポイントは、特に誰もこれを行わないようにすることです。 – user2357112

+0

@ user2357112パスワードを取り戻す機能を設計するにはどうすればいいですか? – BlackMamba

+2

あなたはしません。ログインの試行を検証しようとしている場合は、ユーザーが入力したパスワードがハッシュと一致するかどうかをチェックします。パスワード回復機能を実装しようとしている場合は、代わりにパスワードリセット機能を実装してください。 – user2357112

答えて

3

[MD5]また一方向であるように設計された固定サイズ(ハッシュ関数)のビット列に任意のサイズのデータ​​をマッピングする数学的アルゴリズムであります関数、つまりは反転するのが実行不可能な関数です。

潜在的な脆弱性を除いて、ハッシュを生成した元のデータを取得する方法はありません。それがアイデアです。悪意のある人がデータベースにアクセスすると、彼はあなたのユーザーのパスワードを知ることができません。

1

ハッシュ化されていないパスワードは、非常に困難であることを意味します。そうでなければ、ハッシュ処理に価値がなく、単純なパスワードをデータベースに保存するだけです。

言われているように、非常に単純なパスワードを解き放つことができるように、プロセッサのパワーを大量に消費し、長い時間実行するハッシュしないプログラムがあります。

非常にシンプルで(非常に非効率的な)無害化するには、同じハッシュを生成するまで基本的にgenerate_password_hash関数ですべてのパスワードを渡す必要があります。基本的にすべてのシングルキャラクターパスワードで始まり、次に2文字のパスワードに行くなどです。オンラインでこれをより効率的に行う方法については、たくさん書かれています。 Wikipediaから

関連する問題