如何使用PHP提供XOR视频流

时间:2019-06-03 04:37:06

标签: php video video-streaming xor binary-data

我有一个PHP文件,该文件使用mp4文件上的fread提供视频流。我需要使其与XOR混淆文件一起工作,但无法弄清楚出了什么问题。

我在某些视频文件上使用了XOR密码。现在,我尝试使用PHP读取二进制数据并对其进行XOR解密。我有一个PHP脚本,该脚本使用正确的标头提供mp4的服务,但是在提供二进制文件之前,我需要对其解密。

以下是提供视频流的代码:

while (!feof($stream)) {
    $buffer = fread($stream, $chunksize);
    echo $buffer;
    flush();
}

您可以在这里看到完整的示例: https://gist.github.com/ranacseruet/9826293 它可以在常规MP4文件上完美运行。

但是我正在尝试在回显缓冲区之前执行此操作:

        // unpack into byte array
        $buffer_bytes = unpack("C*",$buffer); 
        for ($i=0; $i < $chunksize; $i++) { 
            //byte arrays start at index 1
            $buffer_bytes[$i+1] ^= $password_bytes[($i%10)+1];
        }
        // pack the decrypted bytes back into $buffer before echoing
        $buffer = pack("C*", ...$buffer_bytes);

查看数组中输出的二进制数据(禁用标头)时,它是正确的-与未加密版本相比,但是启用标头时,视频无法播放。

0 个答案:

没有答案