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