ホームページ  >  記事  >  バックエンド開発  >  PHP経由で排他的論理和(XOR)を使用してファイルを暗号化/復号化する方法

PHP経由で排他的論理和(XOR)を使用してファイルを暗号化/復号化する方法

jacklove
jackloveオリジナル
2018-06-09 14:50:354782ブラウズ

php XOR (XOR) を使用してファイルを暗号化/復号化する

原則: ファイルの各バイトに対してビットごとの XOR 演算を実行し、キー (XOR) を使用すると、復号化で XOR 演算が再度実行されます。

コードは次のとおりです:

<?php

$source = &#39;test.jpg&#39;;
$encrypt_file = &#39;test_enc.jpg&#39;;
$decrypt_file = &#39;test_dec.jpg&#39;;
$key = &#39;D89475D32EA8BBE933DBD299599EEA3E&#39;;

echo &#39;<p>source:</p>&#39;;
echo &#39;<img src="&#39;.$source.&#39;" width="200">&#39;;
echo &#39;<hr>&#39;;

file_encrypt($source, $encrypt_file, $key); // encrypt

echo &#39;<p>encrypt file:</p>&#39;;
echo &#39;<img src="&#39;.$encrypt_file.&#39;" width="200">&#39;;
echo &#39;<hr>&#39;;

file_encrypt($encrypt_file, $decrypt_file, $key); // decrypt

echo &#39;<p>decrypt file:</p>&#39;;
echo &#39;<img src="&#39;.$decrypt_file.&#39;" width="200">&#39;;

/** 文件加密,使用key与原文异或生成密文,解密则再执行一次异或即可
* @param String $source 要加密或解密的文件
* @param String $dest   加密或解密后的文件
* @param String $key    密钥
*/
function file_encrypt($source, $dest, $key){
	if(file_exists($source)){
		
		$content = &#39;&#39;;          // 处理后的字符串
		$keylen = strlen($key); // 密钥长度
		$index = 0;

		$fp = fopen($source, &#39;rb&#39;);

		while(!feof($fp)){
			$tmp = fread($fp, 1);
			$content .= $tmp ^ substr($key,$index%$keylen,1);
			$index++;
		}

		fclose($fp);

		return file_put_contents($dest, $content, true);

	}else{
		return false;
	}
}

?>

この記事では、異質性の使用方法を紹介します。 php または (XOR) を使用してファイルを暗号化/復号化する場合は、関連コンテンツについては php の中国語 Web サイトに注意してください。

関連する推奨事項:

PHP を通じて変数の名前を取得する方法

PHP オブジェクトのクローン作成 clone について学習します

#mysql の一般的なログ関連の操作について

##

以上がPHP経由で排他的論理和(XOR)を使用してファイルを暗号化/復号化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。