English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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を返します。
この関数は、5PHPバージョン0.0から動作を開始しました。
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
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