
Simple Encryption in PHP.
composer require defuse/php-encryption
Это библиотека для шифрования данных с помощью ключа или пароля в PHP. Для работы требуется PHP 5.6 или новее и OpenSSL 1.0.1 или новее. Мы рекомендуем использовать версию PHP, которая всё ещё имеет поддержку безопасности; на момент написания это означает PHP 8.0 или новее. Использование этой библиотеки с неподдерживаемой версией PHP может привести к уязвимостям безопасности.
Текущая версия php-encryption — v2.4.0. Ожидается, что эта библиотека останется стабильной и будет поддерживаться авторами с исправлениями безопасности и ошибок как минимум до 1 января 2024 года.
Библиотека является совместной работой Тейлора Хорнби и Скотта Арцишевски, а также множества участников с открытым исходным кодом.
Что отличает эту библиотеку от других PHP-библиотек шифрования, так это, во-первых, её безопасность. Авторы ежедневно сталкивались с небезопасным кодом шифрования на PHP, поэтому они создали эту библиотеку, чтобы повысить безопасность экосистемы. Во-вторых, эту библиотеку «трудно использовать неправильно». Как и libsodium, её API спроектирован так, чтобы его было легко использовать безопасным образом и трудно — небезопасным.
Эта библиотека не требует особых зависимостей, кроме PHP 5.6 или новее с включёнными расширениями OpenSSL (версия 1.0.1 или новее) (это установлено по умолчанию). Она использует random_compat, который встроен в эту библиотеку, так что вашим пользователям не нужно будет выполнять какие-либо специальные шаги по установке.
Начните с руководства. Инструкции по безопасному получению кода этой библиотеки можно найти в документации «Установка и проверка».
После того как вы прочитаете руководство и получите код, обратитесь к формальной документации для каждого класса, который предоставляет эта библиотека:
Если у вас возникнут трудности, обратитесь к ответам в FAQ. Там объяснены решения наиболее часто сообщаемых проблем.
Если вы криптограф и хотите понять тонкости работы этой библиотеки, посмотрите документацию «Детали криптографии».
Если вы заинтересованы в участии в разработке этой библиотеки, обратитесь к внутренней документации разработчика.
Эта библиотека предназначена для серверного PHP-программного обеспечения, которому необходимо шифровать данные в состоянии покоя. Если вы создаёте программное обеспечение, которому требуется шифрование на стороне клиента, или создаёте систему, требующую кроссплатформенной поддержки шифрования/дешифрования, мы настоятельно рекомендуем вместо этого использовать libsodium.
Если документации вам недостаточно, чтобы понять, как использовать эту библиотеку, вы можете посмотреть пример проекта, который использует эту библиотеку:
Этот код не проходил формального платного аудита безопасности. Тем не менее, он получил множество рецензий от членов PHP-сообщества по безопасности, а авторы имеют опыт в криптографии. По всей вероятности, вы будете в большей безопасности, используя эту библиотеку, чем почти любую другую библиотеку шифрования для PHP.
Если вы используете эту библиотеку как часть своего бизнеса и хотели бы помочь профинансировать формальный аудит, пожалуйста, свяжитесь с Тейлором Хорнби.
Открытый ключ GnuPG, используемый для подписи текущих и новых релизов, доступен в dist/signingkey-new.asc. Его отпечаток:
6DD6 E677 0281 5846 FC85 25A3 DD2E 507F 7BDB 1669
Вы можете проверить его на странице контактов Тейлора Хорнби и в twitter.
Более старые релизы были подписаны (ныне истёкшим) ключом, доступным в dist/signingkey-old.asc. Отпечаток старого ключа:
2FA6 1D8D 99B9 2658 6BAC 3D53 385E E055 A129 1538
Отпечаток старого ключа можно проверить на странице контактов Тейлора Хорнби и в twitter.
Подпись этого нового ключа старым ключом доступна в dist/signingkey-new.asc.sig.