sodium_crypto_box

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box β€” Шифрування Π²Ρ–Π΄ΠΊΡ€ΠΈΡ‚ΠΈΠΌ ΠΊΠ»ΡŽΡ‡Π΅ΠΌ Ρ–Π· Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΡ„Ρ–ΠΊΠ°Ρ†Ρ–Ρ”ΡŽ

Опис

sodium_crypto_box(string $message, string $nonce, 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() для Π±Π΅Π·ΠΏΠ΅Ρ‡Π½ΠΎΠ³ΠΎ кодування для збСрігання.