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

PHP 기본 강의

PHP 고급 강의

PHP & MySQL

PHP 참조 매뉴얼

PHP openssl_public_encrypt() 함수 사용법 및 예제

PHP OpenSSL 함수 매뉴얼

openssl_public_encrypt() 함수는 공개 키를 사용하여 데이터를 암호화하는 데 사용됩니다.

정의와 사용법

openssl_public_encrypt()함수는 공개 키를 사용하여 데이터를 암호화합니다.

openssl_public_encrypt() 함수를 사용하여 데이터를 암호화하고, openssl_private_decrypt()를 사용하여 복호화할 수 있습니다.

문법

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

파라미터

순번파라미터설명
1

data

.

2

encrypted

암호화된 데이터를 가질 것입니다.

3

공개 키.

4

padding

적용할 수 있는 패딩은 OPENSSL_PKCS1_PADDING, OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING, OPENSSL_NO_PADDING。

반환 값

PHP openssl_public_encrypt() 함수는 성공시 TRUE, 실패시 FALSE를 반환합니다.

PHP 버전

이 함수는 버전이 큰5.0.0의 PHP 버전부터 작동합니다.

예제1

openssl_public_encrypt() 함수로 사용하여 공개 키로 데이터를 암호화하려면:

<?php
        //저장된 비밀 키
	$privkey = openssl_pkey_new();
	openssl_pkey_export_to_file($privkey, 'C:/xampp/htdocs/modules/openssl/privatekey.pem');
	//저장된 공개 키
	$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');
	//암호화 데이터
	$data = 'Welcome To TuorialsPoint';
	$isvalid = openssl_public_encrypt ($data, $crypted , file_get_contents('C:/xampp/htdocs/modules/openssl/publickey.pem'),OPENSSL_PKCS1_PADDING);	
	echo "데이터 암호화: ".$crypted;
?>

이렇게 되면 다음과 같은 결과가 나타납니다:

데이터 암호화: ��E �wC�ݭ�+c��f*��o���W�7�EW��$�p�.rng�_N��A1�2U�c~s�ap3)w��=� ��#���g;���u��_%�Z�bb�&��m��v&����q��k

예제2

openssl_public_encrypt() 함수로 데이터를 암호화하고 openssl_private_decrypt() 함수로 복호화하려면:

<?php
        //저장된 비밀 키
	$privkey = openssl_pkey_new();
	openssl_pkey_export_to_file($privkey, 'C:/xampp/htdocs/modules/openssl/privatekey.pem');
	//저장된 공개 키
	$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');
	//암호화 데이터
	$data = '환영합니다 oldtoolbag.com';
	$isvalid = openssl_public_encrypt ($data, $crypted , file_get_contents('C:/xampp/htdocs/modules/openssl/publickey.pem'),OPENSSL_PKCS1_PADDING);	
	echo "데이터 암호화: ".$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 "데이터 복호화: ".$decrypted;
	}
?>

이렇게 되면 다음과 같은 결과가 나타납니다:

데이터 암호화: 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!
데이터 복호화: 환영합니다 oldtoolbag.com

PHP OpenSSL 함수 매뉴얼