English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP Basic Tutorial

PHP Advanced Tutorial

PHP & MySQL

PHP Reference Manual

PHP openssl_private_decrypt() Function Usage and Example

PHP OpenSSL Function Manual

The openssl_private_decrypt() function is used to decrypt data using the private key.

Definition and Usage

openssl_private_decrypt()The function will decrypt the data using the private key.

Use the function openssl_private_decrypt() to decrypt data encrypted with openssl_private_encrypt().

Syntax

openssl_private_decrypt ( string $data , string &$decrypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ] ) : bool

Parameter

Serial numberParameterDescription
1

data

Data to be decrypted.

2

decrypted

It will have decrypted data.

3

key

private key.

4

padding

You can apply the following padding: OPENSSL_PKCS1_PADDING, OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING, OPENSSL_NO_PADDING ..

Return value

PHP openssl_private_encrypt() function returns TRUE on success and FALSE on failure.

PHP version

This function will be valid for PHP versions greater than5.0.0 of PHP version starts working.

Example1

To encrypt data using openssl_public_encrypt() and decrypt using openssl_private_decrypt():

<?php
      //Save private key
	$privkey = openssl_pkey_new();
	openssl_pkey_export_to_file($privkey, 'C:/xampp/htdocs/modules/openssl/privatekey.pem');
	//Save public key
	$dn = array(
		"countryName" => "IN",
		"stateOrProvinceName" => "Karnataka",
		"localityName" => "test"1",
		"organizationName" => "test"2",
		"organizationalUnitName" => "test"3",
		"commonName" => "www.test.com",
		"emailAddress" => "[email protected]"
	);
	$cert = openssl_csr_new($dn, $privkey);}}
	$cert = openssl_csr_sign($cert, null, $privkey, 365);
	openssl_x509_export_to_file($cert, 'C:/xampp/htdocs/modules/openssl/publickey.pem');
	//Encrypted Data
	$data = 'Welcome To oldtoolbag.com';
	$isvalid = openssl_public_encrypt ($data, $crypted, file_get_contents('C:/xampp/htdocs/modules/openssl/publickey.pem'), OPENSSL_PKCS1_PADDING);	
	echo "Data Encryption: ". $crypted;
	echo ">br/<>br/<";
	if ($isvalid) {	
		openssl_private_decrypt ($crypted, $decrypted, file_get_contents('C:/xampp/htdocs/modules/openssl/privatekey.pem'), OPENSSL_PKCS1_PADDING);	
		echo "Data Decryption: ". $decrypted;
	}
?>

This will produce the following results:

Data encryption: L�_}{�E*?���9[w����7p �\ϸI�?ݟ'��ݹ�n��!����ɿ�*����Xcw�����Ւ�)��/��{��!j�L��I*Ï"9eV�9�=Y\�m�i䁦�M(�0PJ���Ԇ�9��C�`�a�ݧ�b���a��?�m�G$i��eU/[�eU����\=�zLdŌn"��:[\�UA��ԭ�ힲ2@-"d��s�="2�nˣ�h��q5U��浿���9�{ݼ��|�NE�a!
Data decryption: Welcome To oldtoolbag.com

Example2

To encrypt file content using openssl_public_encrypt() and decrypt using openssl_private_decrypt():

<?php
        //Save private key
	$privkey = openssl_pkey_new();
	openssl_pkey_export_to_file($privkey, 'C:/xampp/htdocs/modules/openssl/privatekey.pem');
	//Save public key
	$dn = array(
		"countryName" => "IN",
		"stateOrProvinceName" => "Karnataka",
		"localityName" => "test"1",
		"organizationName" => "test"2",
		"organizationalUnitName" => "test"3",
		"commonName" => "www.test.com",
		"emailAddress" => "[email protected]"
	);
	$cert = openssl_csr_new($dn, $privkey);}}
	$cert = openssl_csr_sign($cert, null, $privkey, 365);
	openssl_x509_export_to_file($cert, 'C:/xampp/htdocs/modules/openssl/publickey.pem');
	// Encrypted Data
	$data = file_get_contents('C:/xampp/htdocs/modules/openssl/test.txt'); // save any data in file test.txt;
	$isvalid = openssl_public_encrypt ($data, $crypted, file_get_contents('C:/xampp/htdocs/modules/openssl/publickey.pem'), OPENSSL_PKCS1_PADDING);	
	echo "Data Encryption: ". $crypted;
	echo ">br/<>br/<";
	if ($isvalid) {	
		openssl_private_decrypt ($crypted, $decrypted, file_get_contents('C:/xampp/htdocs/modules/openssl/privatekey.pem'), OPENSSL_PKCS1_PADDING);	
		echo "Data Decryption: ". $decrypted;
	}
?>

This will produce the following results:

Data Encryption: �ى1�A����c�`�xi�j&�!$�z˚�i�*:�)�W�����ai�ٶ�����|t���u��m3S����`��B�fF�qu �r�Z����2X����l�P��7�{ ��v�3(5�RdCř6�]�X`�[�2��{��d�̣bP���YHz �*ب��ZX�R�RWG*��.���˸>�|f�#ԇ]�K�������@ж�'�hp���À�7�T���mΓ�&��BeR���cu�Y���ƣ��-� 
Data Decryption: This is a data encryption test using the openssl php module.

PHP OpenSSL Function Manual