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 — 使用私钥解密数据
$data
, string &$decrypted
, mixed $key
[, int $padding = OPENSSL_PKCS1_PADDING
] ) : bool本函数并不会生成安全加密的值,不应用于加密用途。若需要安全加密的值,考虑使用openssl_random_pseudo_bytes()。
openssl_private_decrypt() 解密先前通过 openssl_public_encrypt() 函数加密的
data 并将结果保存至decrypted变量中。
你可以用该函数来解密只对你可用的数据。
data
decrypted
key
key 必须是和用来加密数据所用公钥对应的私钥。
padding
padding 可以是如下值:
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";
?>