2008/5/14 水曜日

サーバファイル暗号化

Filed under: 開発技術関係 — admin @ 0:16:37

サーバ上のファイルを暗号化するコードを公開。

これは、通常のファイルのバイナリ列を反転させるといったごく単純なもの。ファイル全体をバイナリレベルで読み込み、容量全体を排他的論理和で演算させ、通常では読み込めなくすることで、単純に解読できなくさせる。

暗号化を強化する場合は$seedに当たる文字列をより複雑にすればより強固になる。PHPでファイルを読み出し、コメントを表示するときに使ったりする。


<?php$src_file = “c:\sample\src.txt”;
$dist_file = “c:\sample\src.txt.encode”;
$fh = fopen($src_file,”r”);
if(!$fh){
echo “暗号化するファイルが開けません”;
exit();
}

//ファイルの内容を読み込みます
$src_text = fread($fh, filesize($src_file));
fclose($fh);

$len = strlen($src_text);

for($i=0;$i<=$len;$i++){
$seed .= “1″;
}

//ビット演算XOR(排他的論理和)で暗号化
$enc_text = $src_text ^ $seed;

//echo “暗号化結果: “.$enc_text.”\n”;

//復号化したテキストを保存
$fh = fopen($dist_file,”w”);

//ファイルを開けない場合は終了
if(!$fh){
echo “復号化記録ファイルが開けません”;
exit();
}

fwrite($fh,$enc_text);

//ファイルを閉じる
fclose($fh);

echo “暗号化した文字列をファイルに記録しました”;

?>

HTML convert time: 0.163 sec. Powered by WordPress ME