Поскольку Spring устарел от старого интерфейса
org.springframework.security.crypto.password.PasswordEncoder;
Я искал альтернативы, которые работают с
org.springframework.security.authentication.encoding.PasswordEncoder;
Мой поиск указывает мне на: https://stackoverflow.com/a/18678325
Я тестировал bcrypt и мне было интересно, как он работает.
Объяснение на https://stackoverflow.com/a/6833165 указывает мне на один вопрос.
Если $2a$10$ZaDBCZaI59IMdKuBiRdubuMa2h/itIYIwqLHpS1q245ISD90xsjkW
содержит всю информацию о типе кодировки и соли и так далее, и это хранится в моей базе данных, почему оно сохраняется? Если у кого-то есть этот «хеш», он может легко расшифровать его методом грубой силы.
В моем предыдущем проекте я использовал кодировку SHA с общесистемной секретной солью. В этом случае хэш, украденный из базы данных, не может быть легко расшифрован.
Так почему же bcrypt предпочтительнее SHA с общесистемной солью?