sodium_crypto_aead_chacha20poly1305_ietf_encrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_ietf_encryptVerschlüsselt eine Nachricht

Beschreibung

sodium_crypto_aead_chacha20poly1305_ietf_encrypt(
    #[\SensitiveParameter] string $message,
    string $additional_data,
    string $nonce,
    #[\SensitiveParameter] string $key
): string

Verschlüsselt und authentifiziert eine Nachricht mit ChaCha20-Poly1305 (IETF-Variante).

Die IETF-Variante verwendet 96-Bit-Nonces und interne 32-Bit Zähler anstelle von 64-Bit für beides.

Parameter-Liste

message

Der Klartext, welcher verschlüsselt werden soll.

additional_data

Zusätzliche, zu authentifizierende Daten. Diese Daten werden weder verschlüsselt, noch an den Chiffriertext angehängt.

nonce

Eine Nummer, die nur einmal pro Nachricht verwendet werden darf; 12 Bytes lang.

key

Schlüssel für die Verschlüsselung (256-bit).

Rückgabewerte

Gibt bei Erfolg den Chiffriertext und das Tag zurück. Bei einem Fehler wird false zurückgegeben.

add a note

User Contributed Notes 1 note

up
3
craig at craigfrancis dot co dot uk
7 years ago
Here's a quick example on how to use sodium_crypto_aead_chacha20poly1305_ietf_encrypt(); where you have 1 key to encrypt and decrypt.<?php$key = sodium_crypto_aead_chacha20poly1305_ietf_keygen();//--------------------------------------------------// Encrypting$message = 'hello';$nonce = random_bytes(SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES);$encrypted = sodium_crypto_aead_chacha20poly1305_ietf_encrypt($message, $nonce, $nonce, $key);echo base64_encode($encrypted) . "\n";//--------------------------------------------------// Decrypting$decrypted = sodium_crypto_aead_chacha20poly1305_ietf_decrypt($encrypted, $nonce, $nonce, $key);echo $decrypted . "\n";?>And just to confirm, the $nonce is used twice - the first time it's in the authentication tag ($ad):https://twitter.com/craigfrancis/status/949614546259513344
To Top