Задать вопрос
Lafafm
@Lafafm
Development lead, Full stack generalist

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

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

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

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

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

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

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

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽