nauman_sergey/whatsapp-stream-encryptor
最新稳定版本:v1.0.1
Composer 安装命令:
composer require nauman_sergey/whatsapp-stream-encryptor
包简介
PSR-7 декораторы для шифрования и дешифрования WhatsApp
README 文档
README
PSR-7 декораторы для шифрования и дешифрования WhatsApp, генерация sidecar для стриминга.
Возможности
- Шифрование и дешифрование медиафайлов WhatsApp (IMAGE, VIDEO, AUDIO, DOCUMENT)
- Генерация sidecar-файлов для стриминга (поддержка WhatsApp-совместимого формата)
⚠️ Предупреждение: sidecar нестабилен Генерация sidecar-файла реализована, но результат не совпадаает с оригиналом, ожидаемым WhatsApp. В следствие чего тест связанный с sidecar не проходит.
Установка
composer require nauman_sergey/whatsapp-stream-encryptor
Использование
Генерация ключей
use Sergey\WhatsappStreamEncryptor\MediaKeyGenerator; $mediaKey = random_bytes(32); $keys = MediaKeyGenerator::generateMediaKey('sha256', $mediaKey, 112, 'WhatsApp Image Keys'); $iv = $keys['iv']; $cipherKey = $keys['cipherKey']; $macKey = $keys['macKey'];
Шифрование
use Sergey\WhatsappStreamEncryptor\Encrypt; use GuzzleHttp\Psr7\Utils; $data = file_get_contents('input.jpg'); $encryptor = new Encrypt(Utils::streamFor(''), $cipherKey, $iv); $encryptedWithMac = $encryptor->encryptAndGetMac($data, $macKey); file_put_contents('output.encrypted', $encryptedWithMac);
Дешифрование
use Sergey\WhatsappStreamEncryptor\Decrypt; $encrypted = file_get_contents('output.encrypted'); $encryptedStream = Utils::streamFor($encrypted); $decryptor = new Decrypt($encryptedStream, $cipherKey, $iv, $macKey); $decrypted = $decryptor->getContents(); file_put_contents('output.decrypted.jpg', $decrypted);
Генерация sidecar для стриминга
use Sergey\WhatsappStreamEncryptor\SidecarGenerator; $stream = Utils::streamFor(file_get_contents('output.encrypted')); $sidecar = SidecarGenerator::generate($stream, $iv, $macKey); file_put_contents('output.sidecar', $sidecar);
Тестирование
composer install
composer require --dev phpunit/phpunit
cd vendor/nauman_sergey/whatsapp-stream-encryptor
./vendor/bin/phpunit --bootstrap vendor/autoload.php tests/
Структура проекта
src/— исходный код библиотекиtests/— модульные тесты (PHPUnit)samples/— тестовые файлы (оригиналы, ключи, зашифрованные, sidecar)
Пример HKDF info для разных типов
| Тип медиа | Info-строка для HKDF |
|---|---|
| IMAGE | WhatsApp Image Keys |
| VIDEO | WhatsApp Video Keys |
| AUDIO | WhatsApp Audio Keys |
| DOCUMENT | WhatsApp Document Keys |
Лицензия
MIT
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-08-08