Как отмечали другие люди, хеш не предназначен для "преобразования" обратно в его первоначальное значение .Именно по этой причине хеши используются в базах данных для хранения паролей.С хэшем, который хранится в базе данных, даже если у меня есть доступ к базе данных, я не могу определить пароль, который там хранится.
Теперь, в зависимости от вашего использования хэша, вы можете попробовать несколько вещей:
1.
Вы просто хотите сделать пароль нечитаемым и читаемымчерез некоторое время
В этом случае вы можете использовать алгоритм шифрования и дешифрования, а не метод хэширования.Таким образом, вы можете вернуть исходное значение, если хотите.
Простой пример: https://www.thejavaprogrammer.com/caesar-cipher-java-encryption-decryption/
НИКОГДА НЕ ИСПОЛЬЗУЙТЕ ШИФРОВАНИЕ ДЛЯ ХРАНЕНИЯ ПАРОЛЕЙ.
2.
Вы хотите внедрить службу / систему входа / регистрации, где вы храните пароль в виде хэша.
Если это то, что вы хотите, я бы предложил дружественный bcrypt: https://en.wikipedia.org/wiki/Bcrypt
Сегодняbcrypt - это стандарт для хеширования паролей и другой информации.Реализация Java также предлагает отличный способ проверить, соответствует ли введенный пароль сохраненному паролю.Таким образом, вам не нужно взламывать хэш в течение нескольких дней только для проверки пароля.
Java Реализация bcrypt может быть найдена здесь: http://www.mindrot.org/projects/jBCrypt/