函数:sodium_crypto_secretstream_xchacha20poly1305_init_pull()
适用版本:PHP 7.2.0+
用法: sodium_crypto_secretstream_xchacha20poly1305_init_pull(string $header, string $key): string|false
参数:
- $header:一个包含加密的流的头部信息的字符串。这个头部信息必须是通过sodium_crypto_secretstream_xchacha20poly1305_init_push()函数生成的。
- $key:一个32字节的密钥字符串,用于解密流。
返回值:
- 成功时,返回一个字符串,代表一个解密的流对象。
- 失败时,返回false。
示例:
<?php
$encryptedHeader = '...'; // 加密流的头部信息
$secretKey = '...'; // 密钥
$stream = sodium_crypto_secretstream_xchacha20poly1305_init_pull($encryptedHeader, $secretKey);
if ($stream === false) {
die('初始化解密流失败');
}
// 解密流的进一步操作
?>
注意事项:
- 在使用该函数之前,必须确保已经正确加载了
libsodium
扩展。 - 使用该函数之前,需要先使用
sodium_crypto_secretstream_xchacha20poly1305_init_push()
函数生成加密流的头部信息。 - 密钥必须是一个32字节的字符串,可以使用
sodium_crypto_secretstream_xchacha20poly1305_keygen()
函数生成一个随机的密钥。 - 返回的流对象可以用于后续的解密操作,比如
sodium_crypto_secretstream_xchacha20poly1305_pull()
函数来解密具体的数据块。