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 — Verschlüsselt Daten mit einem privaten Schlüssel
Beschreibung
openssl_private_encrypt() verschlüsselt data mit dem privaten key und speichert das Ergebnis in crypted . Verschlüsselte Daten können Sie mit openssl_public_decrypt() entschlüsseln. Für padding ist als Standard OPENSSL_PKCS1_PADDING gesetzt, Sie können aber auch OPENSSL_NO_PADDING verwenden.
Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.
Zum Beispiel können Sie diese Funktion benutzen umd Daten (oder deren Hashwert) zu signieren um damit sicher zu stellen, dass diese Daten wirklich von Ihnen selbst stammen und nicht von jemanden anders.
Siehe auch openssl_public_decrypt() und openssl_public_encrypt().
openssl_private_encrypt
08-Mar-2002 03:50
28-Jan-2002 10: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 !
