1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/liexusong-php-beast

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md
<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

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 )

Вы можете оставить комментарий после Вход в систему

Введение

Расширение для шифрования исходного кода PHP Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/liexusong-php-beast.git
git@api.gitlife.ru:oschina-mirror/liexusong-php-beast.git
oschina-mirror
liexusong-php-beast
liexusong-php-beast
master