PHP Doku:: Entschlüsselt Daten mit einem privaten Schlüssel - function.openssl-private-decrypt.html

Verlauf / Chronik / History: (45) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzKryptografische ErweiterungenOpenSSLOpenSSL Funktionenopenssl_private_decrypt

Ein Service von Reinhard Neidl - Webprogrammierung.

OpenSSL Funktionen

<<openssl_pkey_new

openssl_private_encrypt>>

openssl_private_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_private_decryptEntschlüsselt Daten mit einem privaten Schlüssel

Beschreibung

bool openssl_private_decrypt ( string $data , string &$decrypted , mixed $key [, int $padding ] )

openssl_private_decrypt() entschlüselt data, die zuvor mit openssl_public_encrypt() verschlüsselt wurden und speichert das Ergebnis in decrypted.

Mit dieser Funktion können beispielweise Daten entschlüsselt werden die einzig für Sie bestimmt sind.

Parameter-Liste

data

decrypted

key

key muss der private Schlüssel sein, der dem Schlüssel entspricht, mit dem die Daten verschlüsselt wurden.

padding

padding ist per Standard OPENSSL_PKCS1_PADDING, kann aber auch eine der Konstanten OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING oder OPENSSL_NO_PADDING sein.

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.

Siehe auch


2 BenutzerBeiträge:
- Beiträge aktualisieren...
sevaa at sprynet dot com
3.10.2009 4:08
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()).
wfredkNOSPAM at L5DevelopmentNOSPAM dot com
9.03.2002 0: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";
?>



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)