検索

PHP は文字通りのプログラミング言語です。PHP は変更後すぐに実行できるという利点を誰もが気に入っていますが、暗号化されていないプレーン テキストのプログラム コードには、Code で記述されたキーやパスワードなど、いくつかの欠点もあります。すべて見てください。

PHP で作成された多くの商用製品は、最終的に顧客のマシンに展開されるときに必然的にプログラム コードを暗号化する必要があります。現在、市販の暗号化ソフトウェアには Zend Guard (US$600) や PHP Encoder (US$199) などがあります。Zend Guard は以前から使用されており、プログラムが適切に記述されていれば、暗号化後の実行結果が変化することはほとんどありません。期待通りではありません。 Zend Guard の原理は、オペコードにコンパイルして暗号化し、実行中に PHP 拡張機能を介して動的に復号化することだと思います。復号化はすでに実行可能な PHP オペコードであるため、公式に主張されている高速化効果があります。私は PHP Encoder を使用したことがないので、それを推測することはできません。

今日は、非常にシンプルな暗号化メカニズムである PHP-Screw を紹介します。その方法は、専用の復号化関数を備えた拡張機能をコンパイルする必要があるのと同じで、その後、暗号化された PHP ファイルを PHP を通じて復号化して実行できます。拡大。ソースコードを見ると、実装方法は実際には非常に簡単です。つまり、エンコードされたデータの前に「PM9SCREW」という文字列があり、PHP ファイルをデコードする必要があるかどうかを判断します。 。

PHP Screw のインストール

次のように、最新の PHP Screw ソース コードのコピーを GitHub から直接クローンします:

git clone https://github.com/Luavis/php-screw

最初のアクションは次のとおりです。パスワード ファイル (my_screw.h) を変更すると、後でこのパスワード ファイルに基づいて専用の PHP 拡張機能 .so ファイルがコンパイルされるため、自分でコンパイルした拡張機能を使用して、別のパスワードで暗号化された PHP を実行したい場合は成功しません。

cd php-screw

vim my_screw.h

ファイル内の pm9screw_mycryptkey 配列を編集します。ファイルの内容は次のとおりです。

short pm9screw_mycryptkey[] = {  11152, 368, 192, 1281, 62};

変更後にアーカイブします。コンパイルする前に php5-dev をインストールするには、php -config、gcc パッケージを実行し、次のコマンドを実行します:

phpize

./configure --with-php-config= which php-config

make

画面は次のとおりです。

コンパイル済み so ファイルはモジュール ディレクトリに配置されます。php.ini にハングするだけです。

次に、専用の暗号化プログラムをコンパイルし、tools ディレクトリに切り替えて直接 make する必要があります:

cd tools

make

コンパイル後、screw 実行可能ファイルが生成され、それを通じて実行可能ファイルを作成できます。 PHP プログラムの場合、暗号化後、元の平文には次のように .screw 拡張子が付きます。

さらに、一部のネチズンは、APC でコンパイルと実行を分離する方法について議論しています。興味のある方は参照してください。 Niao の記事は「APC を使用して PHP コードを保護する」と同じです。ただし、その後の APC の新しいバージョンの PHP サポートは不十分で、たとえば、PHP 5.6 では代わりに Opcache を使用することが推奨されました。実際、PHP 7 で使用される Opcache では、ソース コードに opcache.file_cache などの暗い (ドキュメントに記載されていない) パラメータが表示されますが、残念ながら、この file_cache 関数は PHP 5.6 の Opcache バージョンでは使用できません。 file_cache を使用すると、実際にオペコードのコンパイルと実行を分離できます。このアプローチについては、中国本土の多くの記事で説明されています。

PHP 5.6 でオペコードのコンパイルと実行を本当に分離したい場合は、PHP 7 の Opcache ファイル キャッシュ機能を PHP 5.6 に移行するのは困難です。結局のところ、基盤となる Zend API は大幅に変更されているため、終了する必要があります。残念ですが、最初は PHP Screw を使用してブロックしてください。悪役ではなく紳士から守ります。また次回お会いしましょう。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPの現在のステータス:Web開発動向を見てくださいPHPの現在のステータス:Web開発動向を見てくださいApr 13, 2025 am 12:20 AM

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

PHP対その他の言語:比較PHP対その他の言語:比較Apr 13, 2025 am 12:19 AM

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

PHP対Python:コア機能と機能PHP対Python:コア機能と機能Apr 13, 2025 am 12:16 AM

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

PHP:Web開発の重要な言語PHP:Web開発の重要な言語Apr 13, 2025 am 12:08 AM

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

PHP:多くのウェブサイトの基礎PHP:多くのウェブサイトの基礎Apr 13, 2025 am 12:07 AM

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

誇大広告を超えて:今日のPHPの役割の評価誇大広告を超えて:今日のPHPの役割の評価Apr 12, 2025 am 12:17 AM

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

PHPの弱い参照は何ですか、そしていつ有用ですか?PHPの弱い参照は何ですか、そしていつ有用ですか?Apr 12, 2025 am 12:13 AM

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

PHPで__invoke Magicメソッドを説明してください。PHPで__invoke Magicメソッドを説明してください。Apr 12, 2025 am 12:07 AM

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

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

MantisBT

MantisBT

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

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい