PHP Implementation of Public Key Encryption Using openssl Extension

  • 2021-09-12 00:43:03
  • OfStack

As shown below:


//  Generate private key 
# openssl genrsa -out rsa_private_key.pem 1024
//  Generate public key 
# openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

Here is the sample code:


<?php
// openssl  Extended detection 
var_dump(extension_loaded('openssl'));
$prikey = openssl_pkey_get_private(file_get_contents('rsa_private_key.pem')); // Private key 
$pubkey = openssl_pkey_get_public(file_get_contents('rsa_public_key.pem')); // Public key 
//  Plaintext data 
$data = 'test-string!';
/**
 *  Possible problems: Don't know how to get public key from this private key
 *  Reason: PHP  Adj.  openssl  Extension and  Apache  No 1 Cause to ,  Of course, running the program from the command line will not cause this problem 
 */
//  Public key encryption 
$encrypt_data = '';
openssl_public_encrypt($data, $encrypt_data, $pubkey);
$encrypt_data = base64_encode($encrypt_data);
echo $encrypt_data;
echo '<br/>';
// ------------------------------------------------------------
//  Private key decryption 
$encrypt_data = base64_decode($encrypt_data);
openssl_private_decrypt($encrypt_data, $decrypt_data, $prikey);
var_dump($decrypt_data);

Related articles: