Manuel PHP
Précédent |  | Suivant

# openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6)

openssl_pkcs7_encrypt -- Chiffre un message S/MIME

## Description

``boolean openssl_pkcs7_encrypt` (string infilename, string outfilename, mixed recipcerts, array headers [, long flags])`

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é 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 une en-tête complète.

Les paramètres et le type de retour de cette fonction risquent d'evoluer d'ici à la prochaine version de PHP.

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 vous votre lecture!
    L'ennemi approche! Rendez-vous au café à 8h30,
    pour votre faux passeport.
    HQ
    EOD;
    // 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", "nighthawk.pem",
        array("To" => "nighthawk@agent.com", // keyed syntax
              "From: HQ <hq@cia.com>", // indexed syntax
              "Subject" => "Eyes only")))
    {
        // message chiffré : envoyez le!
        exec(ini_get("sendmail_path") . " < enc.txt");
    }
    ?>

> Note : Ces constantes ont été ajoutées en PHP 4.0.6.

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