W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
(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ù) 可能是最好的起點。
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!"
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: