sodium_crypto_box_seal

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_seal — 익명 공개 키 암호화


설명

sodium_crypto_box_seal(string $message, string $public_key): string

받는 사람만 해독할 수 있도록 메시지를 암호화합니다.

sodium_crypto_box()와 달리, sodium_crypto_box_seal()을 사용하려면 수신자의 공개 키만 알면 됩니다. 그러나 이러한 편리함의 한 가지 결과는 암호문이 정적 공개 키에 바인딩되지 않으므로 인증되지 않는다는 것입니다. 따라서 익명의 공개 키 암호화.

sodium_crypto_box_seal()은 여전히 ​​암호문 무결성을 제공합니다. 발신자 신원 인증이 아닙니다.

발신자 인증도 필요한 경우, sodium_crypto_sign() 함수가 시작하기에 가장 좋은 곳일 것입니다.


매개변수

message
암호화할 메시지입니다.
public_key
메시지를 해독할 수 있는 유일한 키에 해당하는 공개 키입니다.

반환 값

(일회성 공개 키, 암호화된 메시지, 인증 태그) 형식의 암호문 문자열입니다.


Examples

예제 #1 sodium_crypto_box_seal() 예제

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

// Obfuscated plaintext to make the example more fun
$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);
?>
                  
                

위의 예는 다음과 유사한 결과를 출력합니다.

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