Расшифруйте кодированный пароль Bcrypt в весенней безопасности, чтобы деактивировать учетную запись пользователя.

Я работаю над проектом веб-приложения в 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");
}
           BCryptPasswordEncoder bcrypt= new BCryptPasswordEncoder();  
          boolean isPasswordMatches=bcrypt.matches(userenteredpasswordWithotEncryoted, encryptedPasswordFromDb);

Ex

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


   if(isPasswordMatches)   // correct password
      else  // Wrong Password
Другие вопросы по тегам