実際には、暗号化されたパスワードからパスワードを取り戻したいと思っています。
パスワードは次のように暗号化されます。
MessageDigest md = MessageDigest.getInstance("SHA");
md.reset();
byte[] encryptedBinarySource = md.digest(source.getBytes("UTF-8"));
の値を解読する方法はencryptedBinarySource
?
実際には、暗号化されたパスワードからパスワードを取り戻したいと思っています。
パスワードは次のように暗号化されます。
MessageDigest md = MessageDigest.getInstance("SHA");
md.reset();
byte[] encryptedBinarySource = md.digest(source.getBytes("UTF-8"));
の値を解読する方法はencryptedBinarySource
?
できません。SHA は一方向の暗号化です。それを復号化できると、その唯一の目的が壊れてしまいます。むしろ、双方向の暗号化アルゴリズムを使用してください。または、パスワードなどの機密情報を暗号化することを意図している場合は、新しく入力したパスワードを同じ方法で暗号化し、その結果をどこかに保存した元の暗号化されたパスワードと比較する必要があります。
ただし、ユーザー (およびハッカー) がハッシュに基づいて元の値を明らかにできるようにする、いわゆるレインボー テーブルがあります。ただし、SHA の場合、一致が成功する可能性は MD5 よりもはるかに低くなります。
ハッシュを復号化することはできません。ハッシュは一方向関数です。ハッシュされたパスワードは、実際のパスワードを保存しないために実際に使用されます (ユーザーが入力したパスワードをハッシュし、保存されたハッシュと比較します)