Расшифруйте кодированный пароль 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