Асимметричное шифрование с использованием PHP

У меня есть проблема, которая сводит меня с ума.

Я создал пару ключей, выполняющих:

$res = openssl_pkey_new(array('private_key_bits' => 2048));

/* Extract the private key from $res to $privKey */
openssl_pkey_export($res, $privKey);

/* Extract the public key from $res to $pubKey */
$pubKey = openssl_pkey_get_details($res);
$pubKey = $pubKey["key"];

Используя этот код, у меня есть $pubKeyи $privKey.

Я могу правильно зашифровать/расшифровать, но у меня большие сомнения относительно РАСШИФРОВКИ .

На данный момент шифрую данные делаю:

openssl_public_encrypt($data, $encrypted, $pubKey);

Он правильно шифрует мои данные, но, прочитав PHP Doc, я обнаружил:

http://php.net/manual/en/function.openssl-public-decrypt.php

Могу ли я расшифровать данные, используя ПУБЛИЧНЫЙ КЛЮЧ ?? Почему ??

Я знаю, что открытый ключ полезен для ШИФРОВАНИЯ данных, но только владелец закрытого ключа может РАСШИФРОВАТЬ данные.

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

Может ли кто-нибудь объяснить это мне? Я ищу способ использовать два ключа, первый для ШИФРОВАНИЯ, а второй (только второй )для РАСШИФРОВКИ.

Спасибо

6
задан Ilmari Karonen 11 January 2013 в 17:21
поделиться