PHP 8.3.4 Released!

openssl_private_decrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_private_decryptGenel anahtarla şifrelenmiş verinin şifresini gizli anahtarla çözer

Açıklama

openssl_private_decrypt(
    string $şifreli_veri,
    string &$şifresiz_veri,
    OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $gizli_anahtar,
    int $dolgu = OPENSSL_PKCS1_PADDING
): bool

Evvelce openssl_public_encrypt() tarafından şifrelenmiş şifreli_veri'nin şifresini çözüp sonucu şifresiz_veri bağımsız değişkenine yerleştirir.

Şifreli verinin sadece size yazılıp yazılmadığını bu işlevle öğrenebilirsiniz.

Bağımsız Değişkenler

şifreli_veri

şifresiz_veri

gizli_anahtar

Veriyi şifrelemekte kullanılan genel anahtarın karşılığı olan gizli anahtar.

dolgu

Şunlardan biri belirtilebilir: OPENSSL_PKCS1_PADDING, OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING, OPENSSL_NO_PADDING.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0 gizli_anahtar artık OpenSSLAsymmetricKey veya OpenSSLCertificate örneği kabul ediyor; evvelce, OpenSSL key veya OpenSSL X.509 özkaynağı kabul edilirdi.

Ayrıca Bakınız

add a note

User Contributed Notes 3 notes

up
13
wfredkNOSPAM at L5DevelopmentNOSPAM dot com
22 years ago
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";
?>
up
-11
Anonymous
2 years ago
<?php

// Generate keys in console:
// $ openssl genrsa -out private_key 8192
// $ openssl rsa -in private_key -out public_key.pem -pubout -outform PEM

// Test data
$data = 'Hello world';

// Encrypt data with public key
$publicKey = file_get_contents('public_key.pem');
$encrypted = null;

openssl_public_encrypt($data, $encrypted, $publicKey);

echo
'Encrypted data', PHP_EOL;
echo
base64_encode($encrypted), PHP_EOL;

echo
PHP_EOL;

// Decrypt data with private key
$privateKey = file_get_contents('private_key');
$decrypted = null;

openssl_private_decrypt($encrypted, $decrypted, $privateKey);

echo
'Decrypted data', PHP_EOL;
echo
$decrypted, PHP_EOL;
up
-55
tjusongchao at gmail dot com
8 years ago
of course you have to add the openssl extension to you php environment.
To Top