openssl_pkcs7_decrypt

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

openssl_pkcs7_decryptDecrypts an S/MIME encrypted message

Описание

bool openssl_pkcs7_decrypt ( string $infilename , string $outfilename , mixed $recipcert [, mixed $recipkey ] )

Decrypts the S/MIME encrypted message contained in the file specified by infilename using the certificate and its associated private key specified by recipcert and recipkey.

Список параметров

infilename

outfilename

The decrypted message is written to the file specified by outfilename.

recipcert

recipkey

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 openssl_pkcs7_decrypt() example

<?php
// $cert and $key are assumed to contain your personal certificate and private
// key pair, and that you are the recipient of an S/MIME message
$infilename "encrypted.msg";  // this file holds your encrypted message
$outfilename "decrypted.msg"// make sure you can write to this file

if (openssl_pkcs7_decrypt($infilename$outfilename$cert$key)) {
    echo 
"decrypted!";
} else {
    echo 
"failed to decrypt!";
}
?>

Коментарии

If you want to decrypt a received email, keep in mind that you need the full encrypted message including the mime header.

<?php

// Get the full message
$encrypted imap_fetchmime($stream$msg_number"1"FT_UID);
$encrypted .= imap_fetchbody($stream$msg_number"1"FT_UID);

// Write the needed temporary files
$infile tempnam("""enc");
file_put_contents($infile$encrypted); 
$outfile tempnam("""dec");

// The certification stuff
$public file_get_contents("/path/to/your/cert.pem");
$private = array(file_get_contents("/path/to/your/cert.pem"), "password");

// Ready? Go!
if(openssl_pkcs7_decrypt($infile$outfile$public$private))
{
   
// Decryption successful
   
echo file_get_contents($outfile);
}
else
{
   
// Decryption failed
   
echo "Oh oh! Decryption failed!";
}

// Remove the temp files
@unlink($infile);
@
unlink($outfile);

?>
2011-04-29 00:16:11
http://php5.kiev.ua/manual/ru/function.openssl-pkcs7-decrypt.html

    Поддержать сайт на родительском проекте КГБ