Как получить публичный ключ из сохранённого секретного? Я написал свой скрип для шифровки и дешифровки сообщений.$nKey = openssl_pkey_new(); openssl_pkey_export($nKey, $pKey); $uKey = openssl_pkey_get_details($nKey); $uKey = $uKey['key']; $data = 'Привет игорь!'; openssl_public_encrypt($data, $nData, $uKey); echo base64_encode($nData) . ""; openssl_private_decrypt($nData,$dData, $pKey); echo $dData . ""; Как видно выше шифровка и дешифровка происходит в одном скрипте, по моей логике я буду хранить закрытый ключ у себя а открытый создавать для пользователей. Вопросы: 1. Как мне на основе сохранённого закрытого ключа, создавать новые открыты? 2. Как мне лучше хранить закрытый ключ у себя и работать с ним?

6 Дек 2021 в 19:59
183 +1
0
Ответы
1
Для того чтобы получить публичный ключ из сохранённого секретного ключа, можно воспользоваться функцией openssl_pkey_get_public(). Например:$pKey = '-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQC4Fbu6dO2yUfKwguLl0bE38ubDXUpN5cyV6KwqyS2Zb9/KaBvZ
eTcvTQDNetq+GettydVpP8auL4lb/e/Twmz0i7LUvUncH3U5Ac1+elftrLIdc4eus
fKbut+p2cw4zwV0IRUqDrVxhTwTKmeyrGVTuPdxlF9LjK8VN4vsS7ks4SwIDAQAB
AoGASmChK/L2RyYpAIK5qXSGDg8FxcdxwD5xoux30036eLzwbFSqJ+H9lD9nWF6v
DL6AG2d+kfjv3udrnvYdM3n/zcR2Y9IL4adXo3+lZx9KHt5wsAdcuHK8hoPq7w/s
jeUR0N5nxrW4FJyr7gIgMW7z5ooidxfvI9w90MtPJ0MuwaECQQDPI55CK4LHYJo2A
WkEzLbUWapI46xb3RAPWZ0obOzSaFBWx+TTnE9+XYYxYJ+Vp8yQy1aQ7TjyWs2/0
VqJQ4oPfAkEA5FvX3o5CbmZ8BhX+6kOCa1FbiziSB8dLEYaabdDHkaRwU3HTtlyg
SBOnfwR6PVNrXIGCXtT9YoSi8d6TnKHe+wJBAO6Uz+fM6FPMjxn5VduAEsmOVAsg
ylcVV1xONUtw4u9JV0nXbkDLdrHPSE3vjTY6432eOFlVyoVbtrrrK5DZGE0CQE7d
HSt8VlPCHDTK1OO07bB8VzDIvKlKieOy82TSiGdkiy5kjuwS1y2MKvZInlLB2bAq
M0T3EqJC5evMxC+s9T0CQE2l+FHvaVM1pN9x0J0MCXsIiskD93BAqc4oGhUS3nVu
EhPafyRq6fl18ZyfUdB+tM0Iqk6jx0ZLQEGGw5cTF90=
-----END RSA PRIVATE KEY-----';
$pKeyResource = openssl_pkey_get_private($pKey);
$details = openssl_pkey_get_details($pKeyResource);
$publicKey = $details['key'];
echo $publicKey;Для хранения секретного ключа на сервере лучше всего использовать защищенное хранилище, например, vault или хранилище ключей операционной системы. Не рекомендуется хранить секретные ключи в открытом виде в коде или базе данных. Также рекомендуется использовать парольную защиту при доступе к секретному ключу.

Надеюсь, это поможет вам!

17 Апр в 08:17
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 95 117 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир