Как расшифровать значение
На самом деле я хочу получить пароль от зашифрованного пароля.
Пароль зашифрован следующим образом:
MessageDigest md = MessageDigest.getInstance("SHA");
md.reset();
byte[] encryptedBinarySource = md.digest(source.getBytes("UTF-8"));
Как расшифровать значение encryptedBinarySource
?
2 ответа
Ты не можешь SHA является односторонним шифрованием. Возможность расшифровать его нарушит его единственную цель. Скорее используйте двусторонний алгоритм шифрования. Или, если в вашем случае предполагается зашифровать конфиденциальную информацию, такую как пароли, то вам лучше зашифровать только что введенный пароль и сравнить его результат с оригинальным зашифрованным паролем, который вы где-то сохранили.
Однако существуют так называемые радужные таблицы, которые позволяют вам (и хакерам!) Раскрывать первоначальное значение на основе хеша. Для SHA шансы на успешный матч намного ниже, чем у MD5.
Вы не можете расшифровать хэш. Хеш является односторонней функцией. Хешированные пароли действительно используются, чтобы не хранить действительный пароль (вы хэшируете введенный пользователем пароль и сравниваете его с сохраненным хешем)