Lafafm
@Lafafm
Development lead, Full stack generalist

Как сгенерировать public_key на основе пароля юзера?

Доброе время суток.

Проблема вот в чем.
Мне нужно шифровать строку в базе данных одним ключем, но расшифрововать ее под другим.

Т.е. при добавлении записи в базу данных система шифрует строку по паролю "password1". Когда пользователю нужно расшифровать эту строку он вводит свой пароль "pass2" и она расшифровываеться.

Меня заинтересовал алгоритм RSA, но как я понимаю public и privat key там полностью рандомные.

Есть ли способ решить эту задачу..? Или возможно я совсем не с той стороны подошел к вопросу?
Заранее спасибо за ответы.

UPD1: Большое спасибо за ответы. Оказываеться все было не так уж сложно..)
  • Вопрос задан
  • 2494 просмотра
Решения вопроса 2
SagePtr
@SagePtr
Еда - это святое
Сгенерить пару публичного и приватного ключа, публичный хранить открыто, приватный симметрично зашифровать на основании пароля пользователя.
Ответ написан
Комментировать
@vilgeforce
Раздолбай и программист
Для RSA нужно 2 простых числа - P и Q. Из них математическими операциями получается N (для шифрования) и D (для расшифровки). Сомнительно мне получение из произвольно строки корректного N/D, учитывая их длины.

Предлагаю вариант: юзер вводит пароль, он используется для AES, который расшифровывает ключ из ключевой пары. Этот асимметричный ключ используется для операций с базами. Аналогично для второго пароля (и второй половины, соответственно).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы