rasskar/whatsapp-crypto 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

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

rasskar/whatsapp-crypto

最新稳定版本:1.0.0

Composer 安装命令:

composer require rasskar/whatsapp-crypto

包简介

WhatsApp media encryption package

README 文档

README

Latest Stable Version PHP Version

Описание

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

GitHub 信息

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

其他信息

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