Chiffrement anonyme avec clé publique

# sodium_crypto_box_seal

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_seal — Chiffrement anonyme avec clé publique

### Description

function sodium_crypto_box_seal(#[\SensitiveParameter]string `$message`, string `$public_key`): string

Chiffre un message de telle sorte que seul le destinataire puisse le déchiffrer.

Contrairement à sodium_crypto_box(), on n'a besoin que de la clé publique du destinataire pour utiliser sodium_crypto_box_seal(). Une conséquence de cette commodité, cependant, est que le texte chiffré n'est pas lié à une clé publique statique, et n'est donc pas authentifié. D'où le chiffrement anonyme avec clé publique.

sodium_crypto_box_seal() fournit toujours l'intégrité du texte chiffré. Juste pas l'authentification de l'identité de l'expéditeur.

Si l'on a également besoin d'authentification de l'expéditeur, les fonctions sodium_crypto_sign() sont probablement le meilleur point de départ.

### Liste de paramètres

`message`
  Le message à chiffrer.
`public_key`
  La clé publique qui correspond à la seule clé qui peut déchiffrer le message.

### Valeurs de retour

Un texte chiffré sous la forme de (clé publique à usage unique, message chiffré, étiquette d'authentification).

### Exemples

Exemple #1 Exemple de sodium_crypto_box_seal()

    <?php
    $keypair = sodium_crypto_box_keypair();
    $public_key = sodium_crypto_box_publickey($keypair);

    // Le texte en clair obfusqué pour rendre l'exemple plus amusant
    $plaintext_b64 = "V3JpdGluZyBzb2Z0d2FyZSBpbiBQSFAgY2FuIGJlIGEgZGVsaWdodCE=";
    $decoded_plaintext = sodium_base642bin($plaintext_b64, SODIUM_BASE64_VARIANT_ORIGINAL);

    $sealed = sodium_crypto_box_seal($decoded_plaintext, $public_key);
    var_dump(base64_encode($sealed));

    $opened = sodium_crypto_box_seal_open($sealed, $keypair);
    var_dump($opened);
    ?>

Résultat de l'exemple ci-dessus est similaire à :

    string(120) "oRBXXAV4iQBrxlV4A21Bord8Yo/D8ZlrIIGNyaRCcGBfpz0map52I3xq6l+CST+1NSgQkbV+HiYyFjXWiWiaCGupGf+zl4bgWj/A9Adtem7Jt3h3emrMsLw="
    string(41) "Writing software in PHP can be a delight!"

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open