5

sha-512 Algo とそのソルトを使用してデータを暗号化しました。そのデータを解読したいので、Java を使用して解読する方法を教えてください。

ありがとう

4

4 に答える 4

28

SHA-512 は暗号化ハッシュ関数です。暗号化ハッシュ関数は1 つの方法です。データ ブロックのハッシュを計算できますが、ハッシュしかない場合は元のデータを取得することはできません。したがって、ハッシュ コードを解読して元のデータを取り戻すことはできません。

暗号化ハッシュ関数は、パスワードをデータベースに格納するためによく使用されます。ユーザーが入力したパスワードが正しいかどうかを確認するには、最初に「わかりました。データベース内のパスワードを解読して、ユーザーが入力したパスワードと同じかどうかを確認する必要があります」と考えるかもしれません。しかし、それはあなたがこれを行う方法ではありません。

代わりに、ユーザーが入力したパスワードをハッシュし、そのハッシュをデータベースに保存されているハッシュと比較します。ハッシュが同じ場合、ユーザーは正しいパスワードを入力しました。ハッシュを「復号化」する必要はありません。

于 2012-11-29T08:23:19.613 に答える
4

SHA 512 は暗号化ではありません。データの整合性を検証する唯一の方法として設計されたアルゴリズムをハッシュします。

要するに、いいえ、ハッシュアルゴリズムを「復号化」することはできません。

于 2012-11-29T08:22:32.963 に答える
3

MessageDigest クラスを使用して、Java にハッシュを計算させることができます。

String plainText = "text" + "salt";

MessageDigest messageDigest = MessageDigest.getInstance("SHA-512");
byte[] hash = messageDigest.digest( plainText.getBytes() );

System.out.println("Result: " + new String(hash));

考えられる plainText 値がわかっている場合は、一致するハッシュを見つけることができます。ただし、元のデータについての手がかりがない場合、これを力ずくで行うと、基本的に世界の終わりまでかかります。

于 2012-11-29T08:23:01.747 に答える