php_screw 1.5:php暗号化: インストールと使用方法の詳細な説明_PHPチュートリアル
通常、PHP ファイルはテキスト形式でサーバー側に保存されるため、ソース コードを保護するために、ソース コードを暗号化することができます:
まず、暗号化プログラムは PHP ファイルの暗号化を実装します。もう 1 つは、暗号化された PHP ファイルを解析して実行結果を取得することです。後者の実装のほとんどは単なるプログラムです。 PHP モジュール
php_screw (screw) を使用すると、上記の機能を実現できます。最新バージョンは 1.5 で、sourceforge からダウンロードできます。
インストール:
インストールの目的は、実際には 2 つのファイルを生成することです。1 つは暗号化用です。ファイルの PHP スクリュー、もう 1 つは解析モジュールです php_screw.so
1. ソース コード パッケージを展開し、ディレクトリに入ります 2. phpize を実行すると、ディレクトリにconfigure が生成されます
3. 、configure
4を実行すると、解析に使用するphp_screw.soが生成されます
1.ソースコードのtoolsディレクトリに入りますこれ。 lx.php ファイルを暗号化したい場合は、screw lx.php、lx.php が暗号化され、元のプレーンテキスト lx.php が lx.php.screw に名前変更されます。 php_screw.so モジュールがロードされます。まず、ファイルをモジュール ディレクトリにコピーします。具体的なディレクトリについては、/etc/php.ini 設定ファイルの extension_dir 項目を参照してください。RHEL 5 では、これは /usr です。 /lib/php/ modules
方法 1: /etc/php.d ディレクトリに新しい screw.ini ファイルを作成できます (ファイルは任意に取得できます)。その内容は 1 つの文です
extension= php_screw.so
方法 2: パス php.ini ファイルを変更し、extension=php_screw.so を追加し、Apache を再起動すると成功します。
重要な注意:
コンパイルされた .so ファイルは理論的にはつまり、PHP 5.1 でコンパイルした場合、PHP 5.2 で使用することはできません。これは、PHP のロード可能なモジュールが常にそのバージョンに関連しているためです。理論的には、暗号化に使用される screw 実行可能ファイルは、screw.so が同じバージョンに属している限り問題ありません。 テスト: 次のように、hello, world プログラムを作成し、ファイル名を hello.php にします。
コードをコピーします
コードは次のとおりです:
"Hello, world";
?>
phpize は php-develp に属するツールです (具体的な機能は自分で調べてください) したがって、php-develp パッケージをインストールする必要があります次のように、途中にいくつかの依存関係があります:
コードをコピーします
コードは次のとおりです:
[root@localhost Server]# rpm -ivh php-devel-5.1.6-5.el5.i386.rpm
警告: php-devel-5.1.6-5.el5.i386.rpm: ヘッダー V3 DSA 署名: NOKEY、キー ID 37017186
エラー: 失敗した依存関係:
autoconf は php-devel-5.1.6-5.el5.i386 で必要です
automake は php-devel-5.1.6-5.el5.i386 で必要です
[ root@localhost サーバー]# rpm -ivh autoconf
autoconf213-2.13-12.1.noarch.rpm autoconf-2.59-12.noarch.rpm
[root@localhost サーバー]# rpm -ivh autoconf-2.59-12.noarch.rpm
警告: autoconf-2.59-12.noarch.rpm: ヘッダー V3 DSA 署名: NOKEY、キー ID 37017186
エラー: 失敗した依存関係:
imake は autoconf-2.59-12.noarch に必要です
[root@localhost Server]# rpm - ivh imake-1.0.2-3.i386.rpm
警告: imake-1.0.2-3.i386.rpm: ヘッダー V3 DSA 署名: NOKEY、キー ID 37017186
準備中... ###### ################################# [100%]
1:imake ####### ################################## [100%]
[root@localhost サーバー]# rpm - ivh autoconf-2.59-12.noarch.rpm
警告: autoconf-2.59-12.noarch.rpm: ヘッダー V3 DSA 署名: NOKEY、キー ID 37017186
準備中... ############ ############################# [100%]
1:autoconf ########### ############################## [100%]
[root@localhost サーバー]# rpm -ivh automake
automake14 -1.4p6-13.noarch.rpm automake16-1.6.3-8.noarch.rpm automake-1.9.6-2.1.noarch.rpm
automake15-1.5-16.noarch.rpm automake17-1.7.9-7.noarch .rpm
[root@localhost Server]# rpm -ivh automake-1.9.6-2.1.noarch.rpm
warning: automake-1.9.6-2.1.noarch.rpm: ヘッダー V3 DSA 署名: NOKEY、キー ID 37017186
準備中... ######################################## [100% ]
1:automake ########################################### [100 %]
[root@localhost Server]# rpm -ivh php-devel-5.1.6-5.el5.i386.rpm
警告: php-devel-5.1.6-5.el5.i386.rpm: ヘッダー V3 DSA署名: NOKEY、キー ID 37017186
準備中... ##################################### ##### [100%]
1:php-devel ################################ ######## [100%]
2.每密的文件头部都一很明显的字符串PM9SCREW、これ样很容易に人猜到是用ネジ加密的。この問題の解決は、インストールの最初の段階で開始する必要があります。 このネジはソースコードのphp_screw.h内にあります。 輖译の前に、この文字列を変更することができます。たとえば、PeterHu、対応する下の長さはもう 10 了ではなく、tPeterHut、一共 7 个了です。
#define PM9SCREW "tPM9SCREWt"#define PM9SCREW_LEN 10
================================================ === =================================
私はインターネット上で PHP_SCREW のインストールに関する記事をたくさん読みました。いくつかのソース コード レポートもお読みください。
スクリプトが実行できないか、Web ページが表示されないので、本当にイライラします。具体的な理由がわかったら、アドバイスをお願いします。
PS: CentOS リリース 5.8 (最終版)、php5.2.x
php4 が php-screw-1.3 を使用する場合は、php-screw-1.5 をダウンロードしてください
ソースコード。パッケージ: http://sourceforge.net/projects/php-screw /files/latest/download?source=files
ソースコードパッケージを/usr/localに置き、インストールを開始します
1.tar -zxvf php_screw-1.5。 tar.gz (パーミッションなどのエラーがある場合はsudoを追加)
2. cd php_screw_1.5
3.phpize (実行できない場合はインストールされていればphpizeの絶対パスを書く)
4.vi my_screw .h (パスワードが含まれています。必要に応じて変更します。5 桁を超えないようにするのが最善です。変更する場合は、再コンパイル時に使用されるため、覚えておいてください)
5.vi php_screw.h (暗号化されたパスワードが含まれています)文字列、デフォルトは PM9SCREW、別の文字列に変更するのが最善です、文字列が変更された場合は文字列の長さも従う必要があります)変更します、LOVE に変更された場合、長さは 6 になり、文字列は記録される必要があります)
6. ./configure
7. make && make install
成功すると、次のように出力されます: 共有拡張機能のインストール: /usr/lib64/php/modules/( このディレクトリは、/etc の下の php.ini で指定されたディレクトリです). php_screw.so ファイルは、もちろん、コンパイル ディレクトリの modules の下にあります。
8. cd tools/
9. このようにして、暗号化プログラムが生成されます。 /usr/bin
このように、暗号化する際にscrewパスを書かずにファイル名を直接ネジ込むことができます
11.ini
cd /etc/php.dを修正(ここはphp.iniで読み込まれます) 様々な拡張子を書き込むことができますここでは、他のファイルを開けば分かります)
vi php_screw.ini
extension=php_screw.soを書き込んで保存して終了
12.apacheを再起動
ルートディレクトリにhello.phpを作成
< ;?echo 'hello ';?>
php hello.php
出力: hello
ネジ hello.php
出力: Success Crypting(hello.php)、暗号化が成功したことを示し、ディレクトリに追加のファイル hello.php が存在します。 . ネジ、現在の hello.php はすでに暗号化されており、追加のものはソース ファイルのバックアップです。
php hello.php は暗号化されたファイルを正常に解析しました。
phpinfo をルート ディレクトリに作成します。php_screw 拡張子に関連する情報がある場合、暗号化されたファイルにブラウザからアクセスできることを意味します。php.ini と Web ページが 2 つあります。スクリプトによって呼び出されるiniが異なります。
次のステップは、Webページに正しく表示するために再コンパイルすることです。
1. コンパイルディレクトリに移動します
クリーンにする
その後、ディレクトリを削除します。
2.tar -zxvf php_screw.1.5.tar.gz 再解凍します
3. phpize
4. myscrew.h と php_screw.h のパスワードと文字列は前と同じである必要があります
5. =php-config パス (php インストール ディレクトリにパスがあります)
6.make && make install
出力: 共有拡張機能のインストール: /var/www/php5/lib/php/extensions/no-debug-non-zts -20060613/
(今回は php_screw.so がこのディレクトリにあります)
7.php_screw.so が phpinfo の extension_dir で指定されたディレクトリにコピーされます。私の場合は /var/www/modules の下にあります
8.php.ini を変更します。 php のインストール ディレクトリに、phpinfo にどの ini がロードされているかが表示されます。それを変更するだけです)
一番下に extension=php_scrw.so を追加します
9. apache
10 を再起動します。phpinfo に php_screw 関連の情報があるかどうかを確認します。大丈夫ですよ~
この時点でインストールは完了しました。少し手がかりはありますが、なぜこのように2回コンパイルしなければならないのかまだよくわかりません...
追記: インストール中にいくつかの問題が発生しました。コンパイルプロセスは次のとおりです (解決策)
1. /root/php_screw-1.5/php_screw.c: 関数 'pm9screw_compile_file' 内:解決策:
php_screw.c を変更する必要がありますorg_compile_file(file_handle, type) の 78、84、93 行目を変更します。
対象:
org_compile_file(file_handle, type TSRMLS_CC);これでmakeは成功します。
2. /opt/soft/php_screw-1.5/php_screw.c: 関数内 'zm_startup_php_screw':/opt/soft/php_screw-1.5/php_screw.c:124: エラー: 'zend_compiler_globals' には名前 'extended_info' がありません/opt/soft/php_screw-1.5/php_screw.c のメンバー: 関数 'zm_shutdown_php_screw':/opt/soft/php_screw-1.5/php_screw.c:133: エラー: 'zend_compiler_globals' には 'extended_info' という名前のメンバーがありません。 *** [php_screw.lo] エラー 1
解決策:php_screw.c を変更する必要があります
CG(extended_info) = 1;
を:
CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;
php_screw Encrypt はどうですか現在のディレクトリ内のファイル、ディレクトリに含まれるファイル、およびそのディレクトリ内のファイル全体find ./ -name "*.php" -print|xargs -n1screw //すべての .php ファイルを暗号化します
find . / -name "*.screw" -print/xargs -n1 rm //.php ソース ファイルのバックアップ ファイルをすべて削除します コマンドは正常にテストされました...追加するものは何もないはずです。

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。

PHPは、特にWeb開発の分野で、最新のプログラミングで強力で広く使用されているツールのままです。 1)PHPは使いやすく、データベースとシームレスに統合されており、多くの開発者にとって最初の選択肢です。 2)動的コンテンツ生成とオブジェクト指向プログラミングをサポートし、Webサイトを迅速に作成および保守するのに適しています。 3)PHPのパフォーマンスは、データベースクエリをキャッシュおよび最適化することで改善でき、その広範なコミュニティと豊富なエコシステムにより、今日のテクノロジースタックでは依然として重要になります。

PHPでは、弱い参照クラスを通じて弱い参照が実装され、ガベージコレクターがオブジェクトの回収を妨げません。弱い参照は、キャッシュシステムやイベントリスナーなどのシナリオに適しています。オブジェクトの生存を保証することはできず、ごみ収集が遅れる可能性があることに注意する必要があります。

\ _ \ _ Invokeメソッドを使用すると、オブジェクトを関数のように呼び出すことができます。 1。オブジェクトを呼び出すことができるように\ _ \ _呼び出しメソッドを定義します。 2。$ obj(...)構文を使用すると、PHPは\ _ \ _ Invokeメソッドを実行します。 3。ロギングや計算機、コードの柔軟性の向上、読みやすさなどのシナリオに適しています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

WebStorm Mac版
便利なJavaScript開発ツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。
