I have a problem that is driving me crazy.
I have created a pair of keys doing:
$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"];
Using this code, I have $pubKey
and $privKey
.
I can encrypt/decrypt correctly, but I have a big doubt regarding the DECRYPTION.
At the moment I crypt data doing:
openssl_public_encrypt($data, $encrypted, $pubKey);
It encrypt my data correctly, but reading the PHP Doc, I found:
http://php.net/manual/en/function.openssl-public-decrypt.php
Can I decrypt data using PUBLIC KEY ?? Why ??
I know the public key is useful to ENCRYPT data, but only the owner of the private key can DECRYPT data.
If I can decrypt data using the public key, let the users that know the public key decrypt easily the messages.
Could someone explain this to me? I'm looking for a method to use two keys, the first to ENCRYPT and the second (only the second) to DECRYPT.
Thanks