(PHP 7 >= 7.2.0, PHP 8)
sodium_crypto_secretstream_xchacha20poly1305_pull — 从加密流中解密数据块
&$state
, string $ciphertext
, string $additional_data
= ""): array|false从加密流中解密数据块。
state
参见 sodium_crypto_secretstream_xchacha20poly1305_init_pull() 和 sodium_crypto_secretstream_xchacha20poly1305_init_push()
ciphertext
要解密的密文块。
additional_data
可选的附加数据,包含在身份验证标签中。
包含两个值的数组
string; 解密后的块
int; 可选的标签(如果在推送期间提供)。可能的值
SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE
: 最常见的标签,不添加有关消息性质的任何信息。SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_FINAL
: 表示该消息标记流的结束,并擦除用于加密先前序列的密钥。SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_PUSH
: 表示该消息标记一组消息的结束,但不是流的结束。例如,作为多个块发送的巨大 JSON 字符串可以使用此标签来指示应用程序字符串已完成,并且可以对其进行解码。但流本身并未关闭,并且可能会有更多数据跟随。SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY
: "忘记"用于加密此消息和先前消息的密钥,并派生一个新的密钥。