2017-02-25 3 views
-7

学校では、ASP.NET(C#)とJavaのプロジェクトの2つに分かれたプロジェクトがあります。 Webアプリケーションとツール(Java)にログインできる管理者がいます。私たちのプロジェクトでは、ASP.NETは非常に簡単なデータベースを作成します。JavaのASP.NETからハッシュされたパスワードを解読できますか?

しかし、Javaアプリケーションにログインさせるには、管理者のパスワードにアクセスする必要があります。パスワードはASP.NETによってハッシュされます。誰もがJavaでそれを解読する方法を知っていますか?

+2

ハッシングは片方向アルゴリズムです。ハッシュから元のテキストを取得することはできません。暗号化は異なります。ハッシュを持っている場合は、ハッシュされたパスワードを解読しようとするのではなく、ユーザーが指定したパスワードをハッシュし、既に持っているハッシュと比較する必要があります。 – BackSlash

+0

ハッシングアルゴリズムは片方向暗号化です。暗号化はできますが復号化はできません。他の文字列とのみ一致できます。 – Tinwor

+0

http://stackoverflow.com/q/530426/101087 – NineBerry

答えて

2

NONONONONONO - あなたは「解読」することができ、「dehash」であれば、パスワード、あなたはすぐにあなたのコードがそれを達成することは不可能に、今からそれを作るためにどのように機能するかを変更する必要があります。彼らは非常に良い理由のためにハッシュされています。

代わりに、別のユーザーのパスワードを使わずに管理者をログインさせるためのロジックを作成する必要があります。管理者パネルでは、通常のログインと同じセッション/ Cookie情報を作成します。ユーザーのパスワードを知っている唯一の人は、自分自身である必要があります。

+0

いいコメントですが、私はこれがどのように質問に答えるかはわかりません。 OPは間違った用語を使用した可能性があります。 @ArtjomB。 –

+0

私はコメントとして投稿することを考えていましたが、正しい方法は何かを教えてくれるという意味での答えです:管理パネルを作成する - 「どのように復号化するのですか」という質問には答えませんが、基本的な質問に広く答えています。「管理者にどのようにアクセス権を与えるか..." – luk2302

+0

あなたは何を意味するのか見ていますが、あなたが提案しているロジックは、OPが求めているものと全く同じです。 –

0

あなたが望むものは不可能ではありませんが、あなたが望むのは本当に難しいです。あなたが良いパスワードを選択した場合、計算なしでハッシュからパスワードを得ることはほとんど不可能です。長さが単語を含むようなすべての情報、またはパスワードが小文字かどうかは、ハッシュを "逆"するのに役立ちます。

ハッシュ関数が片方向に働くように設計されているため、ほとんどの人がそれが不可能であると言う理由は不可能です。パスワードを保存するのによく使用されています。単純に逆にすることができれば、実際には本当に悪いです。

まず、虹のテーブルを使用できます。これは、ハッシュとそこに初期値を格納するリストです。 (虹のテーブルはあなたのハッシュ関数に適合しなければならないことに注意してください。) 虹のテーブルでパスワードのハッシュと一致するハッシュを見つけることができれば、初期値を調べることができます。しかし、Rainbowテーブルには、よく使われるパスワードのハッシュだけが含まれています。大規模なパスワードや複雑なパスワードを選択した場合、すべてのパスワードを調べる必要があります。この組み合わせのハッシュがパスワードのハッシュと一致するかどうかを確認しますが、これはNSAのようなagencysスーパーコンピュータにアクセスできます。