rasskar/whatsapp-crypto
最新稳定版本:1.0.0
Composer 安装命令:
composer require rasskar/whatsapp-crypto
包简介
WhatsApp media encryption package
README 文档
README
Описание
rasskar/whatsapp-crypto — это библиотека с декораторами для PSR-7 потоков, которые шифруют и расшифровывают медиафайлы в соответствии с алгоритмом WhatsApp.
Она использует AES-256-CBC, HMAC-SHA256 и HKDF для безопасного шифрования.
Установка через Сomposer
composer require rasskar/whatsapp-crypto
Требования
- PHP 8.0 или выше
- OpenSSL
Информационные строки для HKDF
HKDF позволяет указывать информационные строки, специфичные для контекста/приложения. В данном случае контекстом является тип файла, для каждого из которых своя информационная строка:
| Media Type | Application Info |
|---|---|
| IMAGE | WhatsApp Image Keys |
| VIDEO | WhatsApp Video Keys |
| AUDIO | WhatsApp Audio Keys |
Шифрование
require 'vendor/autoload.php'; use GuzzleHttp\Psr7\Stream; use Rasskar\Crypto\Facades\MediaCrypto; use Rasskar\Crypto\Services\KeyGenerator; // Исходный файл $filePath = 'input.jpg'; $mediaKey = random_bytes(32); $info = "WhatsApp Image Keys"; // Открываем поток $stream = new Stream(fopen($filePath, 'rb')); // Создаём HKDFKeyGenerator $keyGenerator = new HKDFKeyGenerator(); // Используем фасад MediaCrypto для шифрования $encryptedData = MediaCrypto::encrypt($stream, $keyGenerator, $mediaKey, $info); // Сохраняем зашифрованный файл file_put_contents('output.enc', $encryptedData); echo "Файл зашифрован: output.enc";
Расшифровка
require 'vendor/autoload.php'; use GuzzleHttp\Psr7\Stream; use Rasskar\Crypto\Facades\MediaCrypto; use Rasskar\Crypto\Services\KeyGenerator; // Файл с зашифрованными данными $filePath = 'output.enc'; $mediaKey = "..."; // Должен быть таким же, как при шифровании $info = "WhatsApp Image Keys"; // Открываем поток $encryptedStream = new Stream(fopen($encryptedFile, 'r')); // Создаём HKDFKeyGenerator $keyGenerator = new HKDFKeyGenerator(); // Дешифруем файл используя фасад MediaCrypto $decryptedData = MediaCrypto::decrypt($filePath, $keyGenerator, $mediaKey, $info); // Сохраняем расшифрованный файл file_put_contents('output.jpg', $decryptedData); echo "Файл расшифрован: output.jpg";
统计信息
- 总下载量: 1
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-02-12