classes/Encryptor.md


Класс Encryptor

Пространство имён: goodboyalex\php_components_pack
Полное имя класса: goodboyalex\php_components_pack\Encryptor
Тип: финальный класс
Версия: 1.0
Доступно с: 1.2.2

Описание

Класс предоставляет функционал криптографической защиты данных:

  • шифрование строк с использованием заданного ключа;
  • дешифрование зашифрованных данных.

Предназначен для безопасной обработки конфиденциальной информации в приложениях.

Автор

  • Имя: Александр Бабаев
  • Email: contact_with_us@babaev-an.ru

Метаданные

  • PSR‑4: goodboyalex/php_components_pack
  • Модификатор класса: final
  • Ключевые особенности:
    • статические методы (не требует создания экземпляра);
    • возврат false при ошибках для простой обработки исключений;
    • использование строгих типов параметров.

Методы

encrypt()

public static function encrypt(string $string, string $key): string|false

Описание:
Шифрует переданные данные с использованием указанного ключа.

Параметры:

  • $string (string) — данные для шифрования.
  • $key (string) — ключ шифрования.

Возвращаемое значение:

  • string — зашифрованные данные в виде строки;
  • false — в случае ошибки (например, некорректный ключ или сбой алгоритма).

Пример использования:

$encrypted = Encryptor::encrypt('секретные данные', 'мой_секретный_ключ');
if ($encrypted !== false)
    echo 'Зашифровано: ' . $encrypted;

decrypt()

public static function decrypt(string $string, string $key): false|string

Описание:
Дешифрует данные, зашифрованные методом encrypt(), с использованием того же ключа.

Параметры:

  • $string (string) — данные для дешифрования (в формате, возвращённом encrypt()).
  • $key (string) — ключ шифрования, использованный при шифровании.

Возвращаемое значение:

  • string — дешифрованные данные;
  • false — в случае ошибки (некорректный формат данных, неверный ключ и т.п.).

Пример использования:

$decrypted = Encryptor::decrypt($encrypted, 'мой_секретный_ключ');

if ($decrypted !== false)
    echo 'Расшифровано: ' . $decrypted;
else
    echo 'Ошибка дешифрования!';

Примечания

  1. Безопасность ключа

    • Ключ шифрования должен храниться в защищённом месте (например, в переменных окружения).
    • Не используйте статические ключи в коде — это снижает безопасность.
  2. Обработка ошибок

    • Всегда проверяйте возвращаемое значение на false перед использованием результата.
    • Для отладки можно добавить логирование ошибок (например, через error_log()).
  3. Совместимость

    • Методы используют стандартные алгоритмы PHP (предположительно openssl_encrypt/openssl_decrypt).
    • Убедитесь, что расширение OpenSSL включено в конфигурации PHP.
  4. Ограничения

    • Класс не поддерживает:
      • асимметричное шифрование (RSA и т.п.);
      • хеширование;
      • работу с файлами (только строковые данные).

Рекомендации по использованию

  1. Для шифрования паролей: используйте специализированные функции (password_hash()), а не Encryptor.

  2. Для передачи данных между системами: комбинируйте с HTTPS для дополнительной защиты.

  3. Для хранения конфиденциальных данных: применяйте уникальные ключи для разных типов данных.

  4. Для тестирования: проверяйте работу на небольших объёмах данных перед внедрением в продакшн.

На главную | Содержание