PHP.mk документација

sodium_crypto_box

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.sodium-crypto-box.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.sodium-crypto-box.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
sodium_crypto_box

Референца за `function.sodium-crypto-box.php` со подобрена типографија и навигација.

function.sodium-crypto-box.php

sodium_crypto_box

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_boxАвтентицирано шифрирање со јавен клуч

= NULL

Шифрирај порака користејќи асиметрична (јавен клуч) криптографија.

Алгоритмот што го користат функциите со префикс 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() за безбедно кодирање за складирање.

Белешки од корисници 1 белешка

craig at craigfrancis dot co dot uk
пред 8 години
Here's a quick example on how to use sodium_crypto_box(); where you have 2 people exchanging a $message, where person 1 encrypts it so that only person 2 can decrypt it, and be sure that person 1 actually sent it (without it being tampered with).

<?php

$keypair1 = sodium_crypto_box_keypair();
$keypair1_public = sodium_crypto_box_publickey($keypair1);
$keypair1_secret = sodium_crypto_box_secretkey($keypair1);

$keypair2 = sodium_crypto_box_keypair();
$keypair2_public = sodium_crypto_box_publickey($keypair2);
$keypair2_secret = sodium_crypto_box_secretkey($keypair2);

//--------------------------------------------------
// Person 1, encrypting

$message = 'hello';

$nonce = random_bytes(SODIUM_CRYPTO_BOX_NONCEBYTES);

$encryption_key = sodium_crypto_box_keypair_from_secretkey_and_publickey($keypair1_secret, $keypair2_public);
$encrypted = sodium_crypto_box($message, $nonce, $encryption_key);

echo base64_encode($encrypted) . "\n";

//--------------------------------------------------
// Person 2, decrypting

$decryption_key = sodium_crypto_box_keypair_from_secretkey_and_publickey($keypair2_secret, $keypair1_public);
$decrypted = sodium_crypto_box_open($encrypted, $nonce, $decryption_key);

echo $decrypted . "\n";

?>
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.