<pre>
____ __ ______ ____ _________ ___________
/ __ \/ / / / __ \ / __ )/ ____/ | / ___/_ __/
/ /_/ / /_/ / /_/ / / __ / __/ / /| | \__ \ / /
/ ____/ __ / ____/ / /_/ / /___/ ___ |___/ // /
/_/ /_/ /_/_/ /_____/_____/_/ |_/____//_/
Имена вкладчиков:
@imaben (поставщик версии для Windows) https://github.com/imaben
@pinguo-niulingyun (поставщик версии для PHP7) https://github.com/pinguo-niulingyun
QQ группа для общения: 239243332
</pre>
<b>Windows DLL:<a href="https://github.com/imaben/php-beast-binaries">Ссылка для скачивания</a></b>
<b>Модуль php-beast можно настроить с помощью пользовательских модулей шифрования, руководство по созданию модулей шифрования: <a href="https://github.com/liexusong/php-beast/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%B5%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F">Кликните здесь</a></b>
<h3>Установка и компиляция:</h3>
<pre><code>
$ wget https://github.com/liexusong/php-beast/archive/master.zip
$ unzip master.zip
$ cd php-beast-master
$ phpize
$ ./configure
$ sudo make && make install
После установки необходимо отредактировать конфигурационный файл php.ini, добавив следующие строки: extension=beast.so, затем перезапустить php-fpm
</code></pre>
<pre>Подсказка: Вы можете увеличить размер кэша для повышения производительности</pre>
<p><b>Производительность при использовании php-beast:</b><br/><br/>
<img src="http://git.oschina.net/liexusong/php-beast/raw/master/images/beast1.png?dir=0&filepath=images/beast1.png&oid=645b87003dada2eac4f1a9fcfd353aa0423f5711&sha=7ec2a0ddc7780b2bab538d9f49d8b262f1bc37b7" /></p>
<p><b>Производительность без использования php-beast:</b><br/><br/>
<img src="http://git.oschina.net/liexusong/php-beast/raw/master/images/beast2.png?dir=0&filepath=images/beast2.png&oid=3f07cff6dca34b22d8933ab0ea1740a0e4f37e34&sha=7ec2a0ddc7780b2bab538d9f49d8b262f1bc37b7" /></p>
Настройки:
<pre><code>
beast.cache_size = размер
beast.log_file = "путь_к_файлу_журнала"
beast.log_user = "пользователь"
beast.log_level = "отладка"
beast.enable = Включено
</code></pre>
Уровень журналирования beast.log_level поддерживает следующие параметры:
<pre>
1. DEBUG
2. NOTICE
3. ERROR
</pre>
Поддерживаемые модули:
<pre>
1. AES
2. DES
3. Base64
</pre>
Тестовое окружение:
<pre><code>
Nginx + Fastcgi + (PHP-5.2.x ~ PHP-7.1.x)
</code></pre>
------------------------------
## Как зашифровать проект
**Шифрование схема 1**
После установки `php-beast`, вы можете использовать скрипт `encode_files.php` из папки `tools` для шифрования вашего проекта. Перед использованием `encode_files.php` вам следует отредактировать файл `configure.ini` в папке `tools`. Пример файла конфигурации:
```ini
; путь источника
src_path = ""
; путь назначения
dst_path = ""
; срок действия
expire = ""
; тип шифрования (выбор: DES, AES, BASE64)
encrypt_type = "DES"
src_path
- это путь до вашего проекта, который требуется зашифровать, dst_path
- это путь для сохранения зашифрованного проекта, expire
- это срок действия проекта (формат expire
: YYYY-mm-dd HH:ii:ss
). encrypt_type
- это метод шифрования, доступные варианты: DES, AES, BASE64.
После изменения файла configure.ini
вы можете запустить команду php encode_files.php
для шифрования проекта.
Шифрование схема 2
Вы также можете использовать функцию beast_encode_file()
для шифрования файлов. Описание функции:
beast_encode_file(string $input_file, string $output_file, int expire_timestamp, int encrypt_type)
.
1. $input_file: файл для шифрования 2. $output_file: путь для сохранения зашифрованного файла 3. $expire_timestamp: время истечения срока действия файла 4. $encrypt_type: используемый алгоритм шифрования (поддерживается: BEAST_ENCRYPT_TYPE_DES, BEAST_ENCRYPT_TYPE_AES)
php-beast
имеет множество мест для настройки, ниже приведены некоторые из них:
1. Используйте файл header.c
для изменения структуры заголовков зашифрованных файлов, что делает эти файлы нераспознаваемыми для большинства существующих программ расшифровки, тем самым повышая безопасность шифрования.
2. php-beast
предоставляет возможность ограничивать выполнение только на определенной машине. Для этого вы можете добавить MAC-адрес сетевой карты в файл networkcards.c
, например:
char *allow_networkcards[] = {
"fa:16:3e:08:88:01",
NULL,
};
После такого изменения, расширение php-beast
будет работать только на машине с MAC-адресом fa:16:3e:08:88:01
. Также обратите внимание, что если имя вашей сетевой карты отличается от eth0
, вы можете указать его в файле php.ini
через параметр beast.networkcard = "xxx"
, где xxx
- это имя вашей сетевой карты. Вы также можете указать несколько сетевых карт, например: beast.networkcard = "eth0,eth1,eth2"
.
3. При использовании php-beast
лучше всего избегать использования стандартного ключа шифрования, так как расширение является открытым. Если используется стандартный ключ шифрования, он может быть легко раскрыт. Поэтому рекомендуется изменять ключ шифрования во время компиляции. Ключ шифрования для модуля aes
можно изменить в файле aes_algo_handler.c
, а для модуля des
- в файле des_algo_handler.c
.
Для включения режима отладки вы можете использовать опцию --enable-beast-debug
при конфигурации. После включения режима отладки вам потребуется добавить параметры beast.debug_path
и beast.debug_mode
в файл конфигурации php.ini
. Параметр beast.debug_mode
позволяет указывать использование режима отладки, а beast.debug_path
- указывает путь для вывода декодированного исходного кода PHP. Таким образом, вы сможете найти декодированный исходный код в директории beast.debug_path
, что поможет проверить правильность декодирования расширения.
Для отключения выполнения незашифрованных PHP-скриптов вы можете использовать опцию --enable-execute-normal-script=off
при конфигурации.
1. beast_encode_file(): Шифрует один файл
2. beast_avail_cache(): Получает доступный размер кэша
3. beast_support_filesize(): Получает максимальный допустимый размер файла для шифрования
4. beast_file_expire(): Получает срок действия одного файла
5. beast_clean_cache(): Очищает все кэши beast (если есть обновленные файлы, этот метод очистит кэш)
1. Linux: Если возникнет ошибка 502, это обычно связано с слишком старой версией GCC. Обновите GCC перед установкой данного модуля.
2. Windows: Несправедливое завершение процесса FastCGI в IIS: попробуйте заменить пользователя IIS с ApplicationPoolIdentity на LocalSystem
------------------------------Автор: Lei Huxun (280259971@qq.com).
Моя книга: PHP: Ядро технологии и лучшие практики (второе издание). Эта книга содержит подробное руководство по написанию расширений PHP.
Alibaba Express:
WeChat:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )