Задать вопрос
@Wet_Dumplings

Как сделать выборку символов с проверкой позиций?

Здравствуйте!

Есть бд с табличкой users и полями <логин>, <пароль>. Предположим, возьму запись [('admin', '123456')]
как сделать так, чтобы при вводе логина `admin` вылез "ввод пароля" вида: (предположим) введите позицию 1 = [вставитьЦифру(1)], введите позицию 6 = [[вставитьЦифру(6)] и так, чтобы при логине каждый раз было разное число позиций, который нужно ввести (тобишь пароль пользователь вводит не целиком а только определенные позиции)

А то не смог найти ни как выдернуть определенное поле с нужным паролем ( кроме как вывести его -
"SELECT password FROM users WHERE login=?",(currentLogin,))
) ни как реализовать описанный выше метод верификации пользователя (т.к. помимо ввода случайных позиций нужно еще, очевидно, их проверить - но не смог опятьже отыскать как сделать текстовый массив из поля SQL таблички)
  • Вопрос задан
  • 166 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
tumbler
@tumbler Куратор тега Python
бекенд-разработчик на python
Двадцать первый век, у миллиардных корпораций каждый месяц утекает по 200 млн учетных записей прям из БД, а у нас пароли в базе открытым текстом.
Единственное место, где так пароль проверяется, я встречал только в SecureBoot, и это дико неудобно.
Но если интересует реализация, могу предложить следующее:
  1. Сохранить в БД хешированные с солью значения вида Pxxx, xAxx, xxSx и т.д.
  2. добить хеши до максимальной длины пароля, чтобы не палить его длину
  3. использовать вместо xxx разную строку для каждой позиции символа исходного пароля
  4. при вводе очередного символа проверять наличие у пользователя нужного хеша
  5. не считать, что этот способ хранения пароля является безопасным

Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Greenway Global Новосибирск
от 150 000 ₽
SPA2099 Москва
До 100 000 ₽
HR Prime Москва
от 300 000 до 3 800 000 ₽