Вывод openssl_public_encrypt () и openssl_private_encrypt ()

Я хотел бы знать несколько вещей

  • Что выводит функции openssl_public_encrypt () и openssl_private_encrypt ()?
  • Вывод вышеуказанных функций (зашифрованные данные), будет ли он безопасен в Интернете?
  • Как перенести сгенерированные зашифрованные данные между веб-сайтами?

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

openssl_private_encrypt() шифрует сообщение закрытым ключом, чтобы его можно было расшифровать любым, у кого есть соответствующий открытый ключ. Это не используется для защиты информации от нежелательных глаз, она используется для создания цифровых подписей, чтобы подтвердить, что данные не были изменены. Обычно вы не должны использовать эту функцию; openssl_sign() используйте openssl_sign() и openssl_verify() .

Шифрование и подпись обычно используются вместе: вы берете свои данные, подписываете их (используя openssl_sign() ) своим личным ключом и затем openssl_public_encrypt() его (используя openssl_public_encrypt() ) с открытым ключом получателя. Отправляйте получателю подпись и зашифрованное сообщение, и получатель может расшифровать сообщение (используя openssl_private_decrypt() ) своим личным ключом и проверить подпись (используя openssl_verify() ) с помощью открытого ключа. Это гарантирует, что никто не сможет прочитать или изменить сообщение, пока он находится в пути, что, вероятно, означает «безопасный для Интернета».

Что касается передачи данных между веб-сайтами, вы можете сделать это любым способом. HTTP, FTP, электронная почта, вызовы API, что угодно. Весь смысл шифрования и подписания заключается в том, что вам не нужно использовать какие-либо специальные средства для безопасного переноса сообщения.