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

Manuale di base PHP

Manuale avanzato PHP

PHP & MySQL

Manuale di riferimento PHP

Uso e esempio della funzione openssl_public_decrypt() in PHP

PHP OpenSSL 函数手册

La funzione openssl_public_decrypt() viene utilizzata per decifrare i dati utilizzando la chiave pubblica.

Definizione e uso

openssl_public_decrypt()La funzione decifrerà i dati utilizzando la chiave pubblica.

Usa la funzione openssl_public_decrypt() per decifrare i dati criptati con openssl_private_encrypt().

Sintassi

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

Parametro

Numero di sequenzaParametroDescrizione
1

dati

Dati criptati utilizzando openssl_private_encrypt().

2

decifrati

Avrà i dati decifrati.

3

chiave

Chiave pubblica.

4

padding

Puoi applicare il riempimento: OPENSSL_PKCS1_PADDING, OPENSSL_NO_PADDING.

Valore di ritorno

La funzione openssl_public_decrypt() di PHP restituisce TRUE con successo, FALSE in caso di fallimento.

Versione PHP

Questa funzione funzionerà a partire dalla versione PHP maggiore di 5.0.0.

Esempio 1

Per utilizzare openssl_private_encrypt() per cifrare i dati e openssl_public_decrypt() per decifrare:

<?php
      //salva la chiave privata
	$privkey = openssl_pkey_new();
	openssl_pkey_export_to_file($privkey, 'C:/xampp/htdocs/modules/openssl/privatekey.pem');
	//cifra i dati
	$data = 'Welcome To oldtoolbag.com';
	$isvalid = openssl_private_encrypt($data, $crypted, file_get_contents('C:/xampp/htdocs/modules/openssl/privatekey.pem'), OPENSSL_PKCS1_PADDING);	
	echo "Cifratura dei dati: " . $crypted;
	echo "</br><</br><";
	//salva la chiave pubblica
	$dn = array(
		"countryName" => "IN",
		"stateOrProvinceName" => "Karnataka",
		"localityName" => "test1",
		"organizationName" => "test2",
		"organizationalUnitName" => "test3",
		"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');
	if ($isvalid) {	
		openssl_public_decrypt($crypted, $decrypted, file_get_contents('C:/xampp/htdocs/modules/openssl/publickey.pem'), OPENSSL_PKCS1_PADDING);	
		echo "Data decryption: ".$decrypted;
	}
?>

Questo produrrà i seguenti risultati:

Cifratura dei dati: k���G��7)xy{�N3Г�x<�J^�gd��Ψ�I?{��<�Ws3�mW$��h��(F;tJ�J�W��|�9L�vL��xF���f����,�(N�ΰ��n���Y%Oo,�2����Qh��G�|-����}���1�6Tm�qS�wb���[�i�-r�F��rQhZ���$�� ��U�pMC��Y�n�0,Z�CuG��8�h��@4f��7ؕ�w��;�����d���ʈ����$�I^�Z���at��?
Decifratura dei dati: Welcome To oldtoolbag.com

Esempio 2

Per utilizzare openssl_private_encrypt() per cifrare il contenuto del file e openssl_public_decrypt() per decifrare:

<?php
       //salva la chiave privata
	$privkey = openssl_pkey_new();
	openssl_pkey_export_to_file($privkey, 'C:/xampp/htdocs/modules/openssl/privatekey.pem');
	//cifra i dati
	$data = file_get_contents('C:/xampp/htdocs/modules/openssl/test.txt');
	$isvalid = openssl_private_encrypt($data, $crypted, file_get_contents('C:/xampp/htdocs/modules/openssl/privatekey.pem'), OPENSSL_PKCS1_PADDING);	
	echo "Cifratura dei dati: " . $crypted;
	echo "</br><</br><";
	//salva la chiave pubblica
	$dn = array(
		"countryName" => "IN",
		"stateOrProvinceName" => "Karnataka",
		"localityName" => "test1",
		"organizationName" => "test2",
		"organizationalUnitName" => "test3",
		"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');
	if ($isvalid) {	
		openssl_public_decrypt($crypted, $decrypted, file_get_contents('C:/xampp/htdocs/modules/openssl/publickey.pem'), OPENSSL_PKCS1_PADDING);	
		echo "Data decryption: ".$decrypted;
	}
?>

Questo produrrà i seguenti risultati:

Data encryption: ��V*�+@4CҺX�i�mM6��� ���,?�F,��+�q �����@�������g�N6c<*eh��:������5Z��&�&'+= ���b���J�r ��aO�@gƝ��m�Gy�4W2�ҋ����%���pX@�k�DW�fEW��$j�>i��~��1���w�m}���}�����5I��x� ��H�*A8�� ��U�7~°���F�}4����DV�MZ��望C �'C��-�7�f�
Data decryption: This is data encryption test using openssl php module.

PHP OpenSSL 函数手册