©
本文档使用 PHP中文网手册 发布
(PHP 4 >= 4.0.6, PHP 5)
openssl_public_decrypt — Decrypts data with public key
$data
, string &$decrypted
, mixed $key
[, int $padding
= OPENSSL_PKCS1_PADDING
] ) openssl_public_decrypt() decrypts
data
that was previous encrypted via
openssl_private_encrypt() and stores the result into
decrypted
.
You can use this function e.g. to check if the message was written by the owner of the private key.
data
decrypted
key
key
must be the public key corresponding that
was used to encrypt the data.
padding
padding
can be one of
OPENSSL_PKCS1_PADDING
,
OPENSSL_NO_PADDING
.
成功时返回 TRUE
, 或者在失败时返回 FALSE
。
[#1] wfredkNOSPAM at L5DevelopmentNOSPAM dot com [2002-03-08 15:52:41]
Encrypt using private key, decrypt using public key.
Use this for posting signed messages: Anyone with access to
your public key can read it, but they can't create one with
your signature.
<?php
echo "Source: $source";
$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);
openssl_private_encrypt($source,$crypttext,$res);
echo "String crypted: $crypttext";
$fp=fopen ("/path/to/certificate.crt","r");
$pub_key=fread($fp,8192);
fclose($fp);
openssl_get_publickey($pub_key);
openssl_public_decrypt($crypttext,$newsource,$pub_key);
echo "String decrypt : $newsource";
?>
[#2] billnet at tiscalinet dot it [2002-01-28 10:41:18]
<?php
$fp=fopen ("/path/to/certificato.pem");
$pub_key=fread ($fp,8192);
openssl_get_publickey ($pub_key);
openssl_public_decrypt ($source,$finaltext,$pub_key);
echo "String decrypt : $finaltext";
?>