Как создать общий хеш из нескольких паролей? - PullRequest
3 голосов
/ 05 августа 2009

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

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

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

1 Ответ

9 голосов
/ 05 августа 2009

Создайте случайный ключ, зашифруйте его ключами, полученными из каждой пары (пароль1, пароль2), (пароль1, пароль3), (пароль1, пароль4), (пароль1, пароль5), (пароль2, пароль3) и т. Д. Затем сохраните каждое из этих десяти шифрований, чтобы вы могли найти правильное, когда вам передадут два произвольных пароля.

В качестве альтернативы, вместо хранения всех этих пар, используйте (2,5) -секретную схему совместного использования (fx Shamir's ), чтобы разделить случайный ключ и затем сохранить каждый из 5 секретов, зашифрованных с помощью ключ, полученный из каждого из паролей.

...