openssl_private_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_private_decrypt秘密鍵でデータを復号する

説明

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

openssl_private_decrypt() は、事前に openssl_public_encrypt() で暗号化された data を復号し、それを decrypted に格納します。

これを使用するのは、例えばあなたにのみ送られてきたデータを復号する場合です。

パラメータ

data

decrypted

key

key は、 データの暗号化に使用したものに対応する秘密鍵である必要があります。

padding

padding には、 OPENSSL_PKCS1_PADDINGOPENSSL_SSLV23_PADDINGOPENSSL_PKCS1_OAEP_PADDINGOPENSSL_NO_PADDING が指定可能です。

返り値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

参考

add a note add a note

User Contributed Notes 1 note

up
0
wfredkNOSPAM at L5DevelopmentNOSPAM dot com
12 years ago
Encrypt using public key, decrypt using private key.

Use this to store stuff in your database: Unless someone
has your private key, the database contents are useless.

Also, use this for sending to a specific individual:  Get
their public key, encrypt the message, only they can use
their private key to decode it.

<?php
echo "Source: $source";
$fp=fopen("/path/to/certificate.crt","r");
$pub_key=fread($fp,8192);
fclose($fp);
openssl_get_publickey($pub_key);
/*
* NOTE:  Here you use the $pub_key value (converted, I guess)
*/
openssl_public_encrypt($source,$crypttext,$pub_key);
echo
"String crypted: $crypttext";

$fp=fopen("/path/to/private.key","r");
$priv_key=fread($fp,8192);
fclose($fp);
// $passphrase is required if your key is encoded (suggested)
$res = openssl_get_privatekey($priv_key,$passphrase);
/*
* NOTE:  Here you use the returned resource value
*/
openssl_private_decrypt($crypttext,$newsource,$res);
echo
"String decrypt : $newsource";
?>
To Top