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 'Ошибка дешифрования!';
Примечания
-
Безопасность ключа
- Ключ шифрования должен храниться в защищённом месте (например, в переменных окружения).
- Не используйте статические ключи в коде — это снижает безопасность.
-
Обработка ошибок
- Всегда проверяйте возвращаемое значение на
falseперед использованием результата. - Для отладки можно добавить логирование ошибок (например, через
error_log()).
- Всегда проверяйте возвращаемое значение на
-
Совместимость
- Методы используют стандартные алгоритмы PHP (предположительно
openssl_encrypt/openssl_decrypt). - Убедитесь, что расширение
OpenSSLвключено в конфигурации PHP.
- Методы используют стандартные алгоритмы PHP (предположительно
-
Ограничения
- Класс не поддерживает:
- асимметричное шифрование (RSA и т.п.);
- хеширование;
- работу с файлами (только строковые данные).
- Класс не поддерживает:
Рекомендации по использованию
-
Для шифрования паролей: используйте специализированные функции (
password_hash()), а неEncryptor. -
Для передачи данных между системами: комбинируйте с HTTPS для дополнительной защиты.
-
Для хранения конфиденциальных данных: применяйте уникальные ключи для разных типов данных.
-
Для тестирования: проверяйте работу на небольших объёмах данных перед внедрением в продакшн.