Как декодировать / получить необработанный пароль из закодированного пароля в базе данных - PullRequest
0 голосов
/ 22 октября 2019

У меня есть сервер аутентификации, который сохраняет учетные данные пользователя в базе данных после успешного входа в систему. Я использую BCryptPasswordEncoder для кодирования пароля перед его сохранением.

PasswordEncoder pe = new BCryptPasswordEncoder();
UserDetails user = new User(username,pe.encode(password), authentication.getAuthorities());

Все это хорошо работает и сохраняет зашифрованный пароль в базе данных.

Из другой службы мне нужно получить учетные данные пользователя и вызвать библиотеку, которая, в свою очередь, вызовет серверную часть для выполнения операции.

Именно здесь начинается проблема. Функция, которую я вызываю, использует необработанный пароль для вызова бэкэнда. Если я предоставлю хешированный пароль, который я сохранил ранее, мой вызов завершится неудачно с бэкэндом с ошибкой «неверный логин».

BCryptPasswordEncoder включает соответствует функция, которая соответствует сырой пароль и хешированный пароль. Я не смог использовать его, потому что у моей службы нет доступа к необработанному паролю.

В BCryptPasswordEncoder нет функции декодирования.

Я не управляю библиотекой и бэкэндом ине могу реально внести в них изменения.

...