ホームページ >バックエンド開発 >PHPチュートリアル >PHP ソースコード暗号化拡張機能 PHP-Beast V2.0 リリース
このアップデートでは主にカスタム暗号化アルゴリズムをサポートしています。独自の暗号化アルゴリズムを php-beast に埋め込むことができます。
非公開の暗号化アルゴリズムを使用して PHP スクリプトを暗号化し、復号化の難易度を高めることができます。具体的な作成チュートリアルについては、リンクを参照してください:
https://github.com/liexusong/php-beast/ blob/master/ write_a_encrypt_handler_module.md
-------------------------------------------------------- ---------- -------------------------------------- ------- ------
暗号化モジュール作成チュートリアル
1. まず .c ファイルを作成します。たとえば、base64 暗号化を使用するモジュールを作成する場合は、base64_algo_handler.c という名前のファイルを作成できます。次に、次のコードをファイルに追加します:
#include "beast_module.h"int base64_encrypt_handler(char *inbuf, int len, char **outbuf, int *outlen){ ...}int base64_decrypt_handler(char *inbuf, int len, char **outbuf, int *outlen){ ...}void base64_free_handler(void *ptr){ ...}struct beast_ops base64_handler_ops = { .name = "base64-algo", .encrypt = base64_encrypt_handler, .decrypt = base64_decrypt_handler, .free = base64_free_handler,};
モジュールは 3 つのメソッド、つまり encrypt、decrypt、free メソッドを実装する必要があります。
1) encrypt メソッドは、inbuf 文字列を暗号化し、それを outbuf 経由で Beast に出力する役割を果たします。
2) decrypt メソッドは、暗号化されたデータ inbuf を復号化し、それを outbuf 経由で Beast に出力します。
3) 無料メソッドは、暗号化メソッドと復号メソッドによって生成されたデータを解放する責任があります。
2. 暗号化モジュールを作成した後、モジュール情報を global_algo_modules.c に追加する必要があります。コードは次のとおりです。
#include <stdlib.h>#include "beast_module.h"extern struct beast_ops des_handler_ops;struct beast_ops *ops_handler_list[] = { &des_handler_ops, &base64_handler_ops, /* 这里是我们的模块信息 */ NULL,};
3. config.m4 ファイルを変更し、最後から 2 行目の行を次のように変更します。
PHP_NEW_EXTENSION(beast, beast.c des_algo_handler.c beast_mm.c spinlock.c cache.c beast_log.c global_algo_modules.c base64_algo_handler.c, $ext_shared)
太字のコードは追加したもので、ここで追加したのはファイル名です。モジュール。これで完了です。コンパイルして試してみることができます。 PHP ファイルを暗号化するために先ほど作成した暗号化アルゴリズムを使用したい場合は、php.ini ファイルの構成項目を次のように変更できます:
beast.encrypt_handler = "base64-algo"
名前はモジュールの名前です。