PHP8 sodium_crypto_box_seal

2024-03-16 10:10 更新

(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() 的公鑰。這樣做的一個后果 然而,方便的是密文不綁定到靜態(tài)公鑰, 因此未經過身份驗證。因此,匿名公鑰加密。

sodium_crypto_box_seal() 仍然提供密文完整性。只是不是 發(fā)件人身份認證。

如果還需要發(fā)件人身份驗證,則 sodium_crypto_sign() 函數(shù) 可能是最好的起點。

參數(shù) 

message

要加密的消息。

public_key

與唯一可以解密消息的密鑰相對應的公鑰。

返回值 

格式為(一次性公鑰、加密消息、身份驗證標記)的密文字符串。

示例 

示例 #1 sodium_crypto_box_seal() example

<?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!"


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號