шифрование — AES-128 (WOWZA) в PHP. Как это сделать?

Я использую Wowza Streaming Engine и хочу зашифровать файлы mp4 потоковым методом HLS, но я не знаю, как создать ключи AES-128 в PHP?

У Wowza есть свой собственный genkey, но он в java и должен быть сделан в SSH. Я хочу сделать это на PHP, но я не знаю, как он создает ключ? Информация о генерации ключей здесь — https://www.wowza.com/docs/how-to-secure-apple-http-live-streaming-aes-128-external-method

Можете ли вы сказать мне, как генерировать такие ключи в PHP?

1

Решение

Ключ может быть любым, если вам нужно, если он 16-байтовый (128 бит) и отформатирован в виде шестнадцатеричной строки:

$key = strtoupper(bin2hex(random_bytes(16)));

0

Другие решения

Я предполагаю, что вы настроили wowza и можете транслировать поток без шифрования.

Ключ является общим для всех клиентов, которые его передают. Вам не нужно генерировать это каким-либо образом. Инструмент из этой статьи — это просто утилита, которая создаст случайный ключ и подготовит файл. Но вы можете сделать это вручную.

Чтобы зашифровать его — но только для устройств ios! — сделать следующее:

  1. в wowza dir должны быть ключи подкаталогов, создайте их при необходимости.
  2. для каждой конечной точки, которая будет передавать поток, создайте файл с именем: <my_endpoint_name>.key В своем примере они используют myStream.key,
  3. Содержание этого файла простое:

cupertinostreaming-aes128-key: secret
cupertinostreaming-aes128-url: <url for CLIENT device to get DECRYPTION key>, for example: http://example.com/key_service.php

  1. В разделе примеров этой страницы есть пример сценария, который выведет ключ в определенном формате, используя правильные заголовки. Поместите этот файл под этим URL (в этом примере: http://example.com/key_service.php) и замените секрет оттуда (DE51A7254739C0EDF1DCE13BBB308FF0с твоим секретом. Вы можете передать дополнительные параметры этому сценарию (см. Ниже). Этот файл будет вызываться клиентским устройством автоматически (Wowza проинструктирует клиента о его получении), чтобы получить ключ. Это может быть другой домен, и это может быть один файл для всех ваших потоков.
  2. Любые дополнительные параметры передаются в файл списка воспроизведения (http://[wowza-ip-address]:1935/live/<my_endpoint_name>/playlist.m3u8) будет передан вашему ключу, генерирующему php-скрипт: вы можете передать идентификатор пользователя или какую-либо другую форму аутентификации / авторизации и использовать ее для генерации проверяемого пользователя и только затем для возврата ключа — помните, что ключ не должен зависеть от пользователя — он должен быть так же, как в файле на шаге 2.

И это все.
tl; dr: создать файл ключа с ключом и URL-адресом, откуда этот ключ будет возвращен. Создайте файл по этому URL, который вернет этот ключ.

1

По вопросам рекламы [email protected]