Я ищу алгоритм асимметричного шифрования с простой реализацией PHP, который не генерирует разные открытые / закрытые ключи каждый раз, когда я его запускаю (но всегда одинаков для одного и того же пароля).
Причина проста: мои клиенты часто забывают / сбрасывают свой пароль, но как только они его запомнят, они смогут восстановить старые зашифрованные файлы, отправленные им, используя старый открытый ключ. С RSA каждый раз, когда они сбрасывают свой пароль (и тем самым, свой открытый ключ), генерируется новый случайный открытый ключ, даже для того же пароля.
Заранее спасибо!
Просто зашифруйте закрытый ключ, используя шифрование на основе пароля. Сначала нужно получить секретный ключ из пароля (например, используя PBKDF2 или bcrypt), а затем зашифровать частный показатель или весь ключ. Это способ, например PGP работает. Конечно, это требует хранения зашифрованного закрытого ключа.
Других решений пока нет …