(PHP 7 >= 7.2.0, PHP 8)
sodium_crypto_secretstream_xchacha20poly1305_pull — 解密加密流中的数据块
&$state
, 字符串 $ciphertext
, 字符串 $additional_data
= ""): 数组|false解密加密流中的数据块。
state
参见 sodium_crypto_secretstream_xchacha20poly1305_init_pull() 和 sodium_crypto_secretstream_xchacha20poly1305_init_push()
ciphertext
要解密的密文块。
additional_data
可选的附加数据,包含在身份验证标签中。
包含两个值的数组
字符串;解密后的块
整数;可选标签(如果在 push 期间提供)。可能的值
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
:“忘记”用于加密此消息和先前消息的密钥,并派生一个新的密钥。