(PHP 7 >= 7.2.0, PHP 8)
sodium_crypto_box — Шифрует открытым ключом с проверкой подлинности
$message
, string $nonce
, #[\SensitiveParameter] string $key_pair
): stringФункция шифрует сообщение асимметричной криптографией (с открытым ключом).
Алгоритм, который используют функции с префиксом sodium_crypto_box(): Эллиптическая кривая Диффи-Хеллмана на кривой Монтгомери, Curve25519; обычно сокращённо X25519.
message
Сообщение, которое нужно зашифровать.
nonce
Номер, который необходимо использовать только один раз для каждого сообщения. Длина 24 байта. Это достаточно большая граница, чтобы генерировать её случайно (например, функцией random_bytes()).
key_pair
Смотрите описание функции sodium_crypto_box_keypair_from_secretkey_and_publickey(). Параметр должен включать секретный ключ X25519 отправителя и открытый ключ X25519 получателя.
Функция возвращает зашифрованное сообщение (зашифрованный текст плюс тег аутентификации). Зашифрованный текст будет на 16 байтов длиннее, чем открытый текст, и необработанная двоичная строка. Смотрите описание функции sodium_bin2base64() для безопасного кодирования для хранения.