Расшифруйте пароль с кодировкой Bcrypt в spring для деактивации учетной записи пользователя

Я работаю над проектом веб-приложения в Spring Hibernate MVC.
Я храню закодированный пароль в базе данных, используя алгоритм Bcrypt в безопасности Spring.
Теперь я хочу, чтобы этот кодированный пароль был декодирован для деактивации. Используйте учетную запись, где я даю пользователю электронную почту и пароль для проверки, прежде чем пользователь деактивирует учетную запись.
У меня проблема с получением расшифрованного пароля.
Может ли кто-нибудь помочь мне выбраться из этого или найти альтернативное решение для моего требования?

Ответ 1

Проблема решается с помощью приведенного ниже кода:

BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();  
encoder.matches(password, user.getPassword());  

password - из формы (JSP)
user.getPassword() - из базы данных

BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
if(email.equalsIgnoreCase(user.getEmail()) && encoder.matches(password, user.getPassword())) {
    userService.deactivateUserByID(user.getId());
    redirectAttributes.addFlashAttribute("successmsg", "Your account has been deactivated successfully.");
    model.setViewName("redirect:/logout");
}else{
    redirectAttributes.addFlashAttribute("errormsg", "Email or Password is incorrect");
    model.setViewName("redirect:/app/profile/deactivate");
}

Ответ 2

BCryptPasswordEncoder bcrypt = new BCryptPasswordEncoder();
boolean isPasswordMatches = bcrypt.matches(userenteredpasswordWithotEncryoted, encryptedPasswordFromDb);

Ex boolean isPasswordMatches = bcrypt.matches("Truck123", "$ 2a $ 10 $ kcVH3Uy86nJgQtYqAFffZORT9wbNMuNtqytcUZQRX51dx6IfSFEd.");

if (isPasswordMatches)//правильный пароль еще//Неправильный пароль