PHPのソースコードを暗号化する方法を探しています。


ファイル全体を暗号化するのではなく、あくまでPHPファイルのコードの一部分を、暗号化できれば良いです。

例えば以下のようなソースコードです。
if(empty($setup_key)){
exit;
}

ただし、ionCube PHP Encoderのようなソフトを使うのではなく、PHPのシステムレベルで、ごく簡易的な方法であればと思います。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/03/20 19:15:48
  • 終了:2007/03/27 08:16:06

回答(4件)

id:GEN111 No.1

GEN111回答回数472ベストアンサー獲得回数582007/03/20 22:37:11

ポイント40pt

見る人が見ればすぐわかってしまうと思いますが、二つほど。

function kaidoku1($n) { eval(gzinflate(base64_decode($n))) ; }
function kaidoku2($n) { eval(gzinflate(pack('H*', $n))) ; }

$code = '
if(empty($setup_key)){
exit;
}
' ;

$angou1 = '4+XKTNNIzS0oqdRQKU4tKS2Iz06t1NSs5uVKrcgsseblquXlAgA=' ;
kaidoku1($angou1) ;

$angou2 = 'e3e5ca4cd348cd2d28a9d450294e2d292d88cf4eadd4d4ace6e54aadc82cb1e6e5aae5e50200' ;
kaidoku2($e) ;

// それぞれの暗号化の仕方
// $angou1 = base64_encode(gzdeflate($code)) ;
// $angou2 = bin2hex(gzdeflate($code)) ;

gzdeflate を入れているのは長めのコードの時に短くなるのを期待しているのと、文字列特有の偏りをなくすため。

http://phpspot.net/php/man/php/function.gzdeflate.html

id:kt26

if(empty($setup_key)){

exit;

}

この部分がファイル内にそのまま記述されるなら、それは暗号化している(もしくは重要な内容)だとわかるのではないでしょうか?

あくまでも上記ソースがファイル上ではわからない・暗号化されている事を望みます。(私の解釈が間違っていたらすみません)

2007/03/20 22:45:03
id:GEN111 No.2

GEN111回答回数472ベストアンサー獲得回数582007/03/20 23:37:03

ポイント40pt

私も勘違いしている & 書き方がまずかったかもしれませんが、

$code = '
if(empty($setup_key)){
exit;
}
' ;

この部分は暗号化も含めた説明のために記述したもので、あらかじめ暗号化された文字列があれば

function kaidoku1($n) { eval(gzinflate(base64_decode($n))) ; }
kaidoku1('4+VKTc7IV1DySM3JyddRKM8vyklRVFKw5uUCAA==') ;

これで動作します (例とは別のコードを暗号化しています)。

もちろん kaidoku 関数を作らずに

eval(gzinflate(base64_decode('4+VKTc7IV1DySM3JyddRKM8vyklRVFKw5uUCAA=='))) ;

だけでも動きます。

この暗号化された文字列を得るために

$code = '
if(empty($setup_key)){
exit;
}
' ;
echo base64_encode(gzdeflate($code)) ;

こういうコードを実行するとか、いちいちコードを書くのが面倒なら暗号化用のフォームを作成するということです。

http://q.hatena.ne.jp/1174385745

id:kt26

再説明ありがとうございます。意味が理解できました。

そしてテストで動かしてみたのですが、良い感じだと思います。

確かに見る人が見ればわかるかもしれませんが、PHPに詳しくない方には有効でしょうし、システムの使い回しを防いだり、利用制限をつける事も出来ると思います。

2007/03/21 03:59:44
id:kurukuru-neko No.3

kurukuru-neko回答回数1844ベストアンサー獲得回数1552007/03/21 01:37:30

HTML/PHP スクリプト

暗号化ソフトウエア

CODELOCK V2.0 評価版あり

6800円

http://codelock.agtjapan.com/

PHPスクリプツ暗号化ツール

PHP Screw

http://sourceforge.net/projects/php-screw/

http://www.pm9.com/newpm9/itbiz/php/phpscrew/

http://www.moongift.jp/oss/intro/i-1177.html

id:kt26

良い情報だと思いますが、質問に書いてあるとおり、今回はソフトを探しているわけではありません。

2007/03/21 03:54:02
id:kurukuru-neko No.4

kurukuru-neko回答回数1844ベストアンサー獲得回数1552007/03/21 15:04:08

ポイント10pt

>今回はソフトを探しているわけではありません

PHPは、スクリプトソースの暗号化をサポート

していません。従ってなんらかのソフト

使わないでの対応するのは不可能です。

1.PHPのソースコードをWEBサーバーに登録

  するためには、事前に暗号化するため、

  何らかの手段としてソフトウェアは必須

2.システムレベルで行う場合php.ini

  に通常組み込まれたZendの拡張を使う

  処理か、PHP拡張を使う処理

  PHP Screwはインストールの解説にあるように

  php.ini zend_extensionを使う

  (Zend Guardもおそらく同じ)

  Turck MMCache,microcodeは、

  php.ini extensionを使う

http://www.pm9.com/newpm9/itbiz/php/phpscrew/phpscrew.txt

http://www.doyouphp.jp/tips/tips_mmcache_encoder.shtml

http://www.zend.co.jp/products/guard/

http://sourceforge.net/projects/microcode

http://www.ioncube.jp/

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません