of course you have to add the openssl extension to you php environment.
(PHP 4 >= 4.0.6, PHP 5, PHP 7)
openssl_private_decrypt — Decrypts data with private key
$data
, string &$decrypted
, mixed $key
[, int $padding
= OPENSSL_PKCS1_PADDING
] )
openssl_private_decrypt() decrypts
data
that was previously encrypted via
openssl_public_encrypt() and stores the result into
decrypted
.
You can use this function e.g. to decrypt data which is supposed to only be available to you.
data
decrypted
key
key
must be the private key corresponding that
was used to encrypt the data.
padding
padding
can be one of
OPENSSL_PKCS1_PADDING
,
OPENSSL_SSLV23_PADDING
,
OPENSSL_PKCS1_OAEP_PADDING
,
OPENSSL_NO_PADDING
.
成功时返回 TRUE
, 或者在失败时返回 FALSE
。
of course you have to add the openssl extension to you php environment.
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";
?>