Heim  >  Artikel  >  Backend-Entwicklung  >  So verschlüsseln/entschlüsseln Sie Dateien mit Exklusiv-ODER (XOR) über PHP

So verschlüsseln/entschlüsseln Sie Dateien mit Exklusiv-ODER (XOR) über PHP

jacklove
jackloveOriginal
2018-06-09 14:50:354696Durchsuche

PHP verwendet XOR (XOR) zum Verschlüsseln/Entschlüsseln von Dateien

Prinzip: Führen Sie eine bitweise XOR-Operation für jedes Byte der Datei und des aus Schlüssel (XOR) wird bei der Entschlüsselung erneut eine XOR-Operation durchgeführt.

Der Code lautet wie folgt:

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

?>

In diesem Artikel wird die Verwendung von Ausnahmen erläutert Durch PHP Oder (XOR) verschlüsseln/entschlüsseln Sie Dateien. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

So erhalten Sie den Namen einer Variablen über PHP

Erfahren Sie mehr über das Klonen von PHP-Objekten

Verwandte Vorgänge im allgemeinen MySQL-Protokoll


Das obige ist der detaillierte Inhalt vonSo verschlüsseln/entschlüsseln Sie Dateien mit Exklusiv-ODER (XOR) über PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn