When used with RSA, this function only accepts a single block. Block size is equal to the RSA key size - i. e., with a 1024-bit key, block size should be 128 bytes. Depending on the padding scheme, the payload may be even smaller. The padding is removed, so you'll receive the ready to use plaintext. Blocking logic is up to the caller, though.
When passing Microsoft CryptoAPI-generated RSA cyphertext, revert the bytes in the block (you may use strrev()).
openssl_private_decrypt
(PHP 4 >= 4.0.6, PHP 5)
openssl_private_decrypt — Déchiffre des données avec une clé privée
Description
openssl_private_decrypt() déchiffre data qui a été chiffrée précédemment avec openssl_private_encrypt(), puis stocke le résultat dans la variable decrypted .
Vous pouvez utiliser cette fonction pour déchiffrer les données qui sont supposées vous être personnellement adressées.
Liste de paramètres
- data
-
- decrypted
-
- key
-
key doit être la clé privée utilisée pour chiffrer les données.
- padding
-
padding vaut par défaut OPENSSL_PKCS1_PADDING, mais peut aussi prendre les valeurs de OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING ou OPENSSL_NO_PADDING.
Valeurs de retour
Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.
Voir aussi
- openssl_public_encrypt() - Chiffre des données avec une clé publique
- openssl_public_decrypt() - Déchiffre des données avec une clé publique
openssl_private_decrypt
03-Oct-2009 04:08
09-Mar-2002 12:58
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";
?>
