Java Spring Boot шифрует пароль администратора перед его сохранением в базе данных? - PullRequest
1 голос
/ 29 сентября 2019

Требуется инициализация пользователя-администратора в базе данных, поскольку для регистрации новой учетной записи требуется разрешение администратора.Проблема в том, что когда я включаю шифрование (шифрую пароли всех зарегистрированных пользователей), он также пытается расшифровать инициализированный пароль администратора и возвращает ошибку:

Encoded password does not look like BCrypt

Я думаю, что могу каким-то образом зашифровать инициализированный пароль администратора перед сохранениемэто в базе данных (MySQL).Но я не уверен, как это сделать.Любые советы?

В настоящее время я инициализирую базу данных с правами администратора с помощью запросов SQL.

Ответы [ 2 ]

1 голос
/ 29 сентября 2019

В этом случае вам следует перезаписать старый защищенный пароль зашифрованным паролем непосредственно в БД.Или удалите и заново создайте свою учетную запись в соответствии с новыми правилами

. Для этого вы можете ввести простой пароль для сайта, подобный этому https://www.browserling.com/tools/bcrypt, установить округление до 10 (это значение, которое по умолчанию использует bean-компонент Spring)и он даст вам зашифрованный пароль.просто замените его в БД

0 голосов
/ 29 сентября 2019

ИМХО, я не уверен, имеет ли MySQL функцию шифрования BCrypt по умолчанию .Я полагаю, что на вашем компьютере установлен bcrypt, который вы используете для шифрования паролей.Если это так, я бы не рекомендовал использовать шифрование на уровне базы данных.

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

Если бы мне пришлось проектировать систему, я мог бы пойти на шифрование на уровне приложения и позволить приложению Spring-Boot справиться с этим.

...