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

データ

.

2

暗号化データ

これには暗号化されたデータが含まれます。

3

公開鍵。

4

フィルティング

適用できるフィルティングは:OPENSSL_PKCS1_PADDING、OPENSSL_SSLV23_PADDING、OPENSSL_PKCS1_OAEP_PADDING、OPENSSL_NO_PADDING。

返り値

PHP openssl_public_encrypt()関数が成功した場合TRUEを、失敗した場合FALSEを返します。

PHPバージョン

この関数は、5PHPバージョン0.0から動作を開始しました。

例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;
?>

これは以下の結果を生成します:

データ暗号化:ECN WC CDATA+CF*ORG7EWW$PARNG.RNGENG_NETA1#2Uデータ~sAp3)WE=#G;U%ZBBB&MV&QK

例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 = 'Welcome To  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 ファンクションマニュアル