(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
:「忘記」用於加密此訊息和先前訊息的密鑰,並衍生一個新的密鑰。