2017-01-14 19 views
1

我正在使用Wowza Streaming Engine,我想用HLS流式方法加密mp4文件,但我不知道如何在PHP中創建AES-128密鑰?PHP中的AES-128(WOWZA)。這個怎麼做?

Wowza有它自己的genkey,但它是用java編寫的,必須在SSH中完成。我想在PHP中這樣做,但我不知道它是如何創建密鑰的?關於生成密鑰的信息在這裏 - https://www.wowza.com/docs/how-to-secure-apple-http-live-streaming-aes-128-external-method

你能告訴我如何在PHP中生成這樣的密鑰?

回答

0

鍵可以是你想要的,只要它是16個字節(128位),格式爲十六進制字符串什麼:

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

+0

是的,它的工作原理!多謝,夥計! :) – ShinJii

1

我假設你已經配置wowza並且可以流不加密流。

密鑰爲所有正在流式傳輸的客戶端共享。你不需要以任何方式生成它。該文章中的工具只是一個實用程序,它將創建隨機密鑰和準備文件。但你可以用手做。

加密它 - 但僅限於ios設備! - 執行以下操作:

  1. 在wowza目錄中應該有子目錄鍵,如果需要的話創建它。
  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

  • 在該頁的實施例部分有,將在特定的格式輸出密鑰使用正確的樣品腳本頭。將該文件放在該URL下(在此示例中:http://example.com/key_service.php),然後用您的祕密替換那裏的祕密(DE51A7254739C0EDF1DCE13BBB308FF0)。您可以將其他參數傳遞給此腳本(請參見下文)。這個文件將被客戶端設備自動調用(Wowza將指示客戶端獲取它)來獲取密鑰。它可以是不同的域,它可以是所有流的一個文件。
  • 傳遞給播放列表文件(http://[wowza-ip-address]:1935/live/<my_endpoint_name>/playlist.m3u8)的任何其他參數將傳遞到您的密鑰生成PHP腳本:您可以傳遞用戶ID或其他形式的身份驗證/授權,並使用它來生成驗證用戶,然後才能返回密鑰 - 記住該密鑰必須不依賴於用戶的 - 它必須是相同的文件在第2步
  • 就是這樣。 tl; dr:創建密鑰文件,其中包含密鑰和將從中返回該密鑰的網址。在該URL處創建將返回該密鑰的文件。