nodejs 6, какой асимметричный шифр для зашифрованных файлов конфигурации

#node.js #encryption

#node.js #шифрование

Вопрос:

Я создаю приложение electron и хочу защитить сохраненные пользовательские настройки

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

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

есть ли решение для создания этого с помощью встроенного модуля nodejs crypto?

если да, какой алгоритм подходит для этого?

я думал, что это будет «простая» реализация rsa, но, просматривая документы, я не могу найти какой-либо метод генерации ключей, который принимает пароль в качестве входных данных?

Комментарии:

1. Нет, это невозможно только с модулем crypto, и в любом случае это требует много работы, чтобы сделать это. Вам нужно будет использовать генератор псевдослучайных чисел с возможностью заполнения, чтобы всегда находить одни и те же простые числа для одного и того же начального числа (пароля). Обычно вы не можете изменить PRNG, который используется при поиске по простым числам (по уважительной причине).

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

3. Конечно, вы можете это сделать, но криптомодуль не предоставляет функции генерации пары ключей RSA. Он может использовать только ранее сгенерированные ключи.