Двадцать первый век, у миллиардных корпораций каждый месяц утекает по 200 млн учетных записей прям из БД, а у нас пароли в базе открытым текстом.
Единственное место, где так пароль проверяется, я встречал только в SecureBoot, и это дико неудобно.
Но если интересует реализация, могу предложить следующее:
- Сохранить в БД хешированные с солью значения вида Pxxx, xAxx, xxSx и т.д.
- добить хеши до максимальной длины пароля, чтобы не палить его длину
- использовать вместо xxx разную строку для каждой позиции символа исходного пароля
- при вводе очередного символа проверять наличие у пользователя нужного хеша
- не считать, что этот способ хранения пароля является безопасным