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);
/*
* NOTE: Here you use the returned resource value
*/
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);
/*
* NOTE: Here you use the $pub_key value (converted, I guess)
*/
openssl_public_decrypt($crypttext,$newsource,$pub_key);
echo "String decrypt : $newsource";
?>
openssl_private_encrypt
(PHP 4 >= 4.0.6, PHP 5)
openssl_private_encrypt — 秘密鍵でデータを暗号化する
説明
openssl_private_encrypt() は、data を秘密鍵 key で暗号化し、それを crypted に格納します。暗号化されたデータは、 openssl_public_decrypt() を用いて復号可能です。
この関数を使用するのは、例えばデータ(あるいはその一部)に署名をし、 それが他人によって書かれたものでないことを証明する場合です。
パラメータ
- data
-
- crypted
-
- key
-
- padding
-
padding のデフォルトは OPENSSL_PKCS1_PADDING ですが、これ以外に OPENSSL_NO_PADDING が指定可能です。
返り値
成功した場合に TRUE を、失敗した場合に FALSE を返します。
openssl_private_encrypt
wfredkNOSPAM at L5DevelopmentNOSPAM dot com
09-Mar-2002 08:50
09-Mar-2002 08:50
billnet at tiscalinet dot it
29-Jan-2002 03:47
29-Jan-2002 03:47
<?php
$fp=fopen ("/path/to/key.pem","r");
$priv_key=fread ($fp,8192);
fclose($fp);
openssl_get_privatekey ($priv_key);
openssl_private_encrypt($source,$finaltext,$priv_key);
echo "String crypted: $finaltext";
?>
CIAO !
