У меня есть сайт на Django (еще не запущен, поэтому реальных пользователей нет), использующий обычный django.contrib.auth
, и хочу хранить пароли в виде простого текста, а не хеш-хэшей SHA-1.
Вопрос в том, каков наилучший подход для этого, надеюсь, без исправлений (или исправлений обезьян) исходного кода Django?
ПРИМЕЧАНИЕ : Я прекрасно знаю, что это , конечно, менее безопасно. Открытый текст необходим для выполнения аутентификации «запрос-ответ», например CHAP для PPTP VPN, DIGEST-MD5 для IMAP4 и HTTP-дайджест для хранилища файлов на основе WebDAV. Итак, я торгую безопасностью уровня БД с безопасностью уровня соединения.
Конечно, я рассматриваю возможность обучения и поощрения пользователей к использованию сертификатов X.509 (а не к использованию каких-либо паролей), но это не так просто.
Реверсивное шифрование (обфусцирование) паролей и использование некоторых разрешений на уровне столбцов, чтобы пароль был ВСТАВЛЯЕМЫМ / ОБНОВЛЯЕМЫМ, но недоступным для ВЫБОРА веб-пользователем (доступен только для некоторых пользовательских функций проверки, таких как SELECT * FROM users WHERE 'somesha1hash' = USER_HMAC(id, 'salt')
), поэтому пароли не будут "просто там" - это хорошая идея , и я постараюсь это сделать. Предложения по защите незашифрованных данных горячо приветствуются, но я больше всего хочу услышать, как взломать способ хранения паролей.