>  기사  >  백엔드 개발  >  PHP를 통해 배타적 OR(XOR)을 사용하여 파일을 암호화/복호화하는 방법

PHP를 통해 배타적 OR(XOR)을 사용하여 파일을 암호화/복호화하는 방법

jacklove
jacklove원래의
2018-06-09 14:50:354741검색

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;
	}
}

?>

이 글에서는 배타적 OR(XOR)을 사용하여 PHP를 통해 파일을 암호화/복호화하는 방법을 소개합니다. 자세한 내용은 PHP 중국어 웹사이트를 참고하세요. .

관련 권장 사항:

php를 통해 변수 이름을 얻는 방법

php 개체 복제 clone의 관련 내용 이해

mysql 일반 로그 관련 작업에 대해


위 내용은 PHP를 통해 배타적 OR(XOR)을 사용하여 파일을 암호화/복호화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.