定制 nauman_sergey/whatsapp-stream-encryptor 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-08-08