Manuel PHP
Précédent |  | Suivant

# openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_encrypt -- Chiffre un message S/MIME

## Description

bool openssl_pkcs7_encrypt ( string infile, string outfile, mixed recipcerts, array headers [, int flags [, int cipherid]] )

openssl_pkcs7_encrypt() prend le contenu du fichier `infilename` et le chiffre en utilisant un chiffrement RC2 à 40-bit, de manière à ce que le message ne puisse être lu que par le possesseur de `recipcerts`, qui peut être un certificat X.509 ou un tableau de certificats X.509. `headers` est un tableau d'en-têtes qui seront ajoutés en tête de message, une fois que les données auront été chiffrées. `flags` peut être utilisé pour spécifier des options qui affecteront le chiffrement (voir les constantes PKCS7). `headers` peut être un tableau associatif, dont les clés sont les noms d'en-tête, ou bien un tableau indexé dont chaque ligne contient un en-tête complet. Cipher peut être sélectionné avec le paramètre `cipherid` depuis PHP 5.

Exemple 1. Exemple avec openssl_pkcs7_encrypt()

`<?php
// le message que vous souhaitez chiffrer et envoyer à votre agent secret
// en mission commandée, appelé "nighthawk". Vous avez son certificat
// dans le fichier "nighthawk.pem"
$data = <<<EOD
Nighthawk,
Top secret, uniquement votre lecture !
L'ennemi approche! Rendez-vous au café à 8 h 30,
pour votre faux passeport.
HQ
EOD;
// Chargement de la clé
$key = file_get_contents("nighthawk.pem");
// sauvez le message dans un fichier
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);
// chiffrez le
if (openssl_pkcs7_encrypt("msg.txt", "enc.txt", $key,
array("To" => "nighthawk@agent.com", // keyed syntax
"From: HQ <hq@cia.com>", // indexed syntax
"Subject" => "Secret défense"))) {
// message chiffré : envoyez-le!
exec(ini_get("sendmail_path") . " < enc.txt");
}
?>`

Précédent | Sommaire | Suivant
openssl_pkcs7_decrypt | Niveau supérieur | openssl_pkcs7_sign