php 使用异或(xor)加密/解密文件
原理:将文件每一个字节与key作位异或运算(XOR),解密则再执行一次异或运算。

代码如下:
<?php
$source = 'test.jpg';
$encrypt_file = 'test_enc.jpg';
$decrypt_file = 'test_dec.jpg';
$key = 'D89475D32EA8BBE933DBD299599EEA3E';
echo '<p>source:</p>';
echo '@@##@@';
echo '<hr>';
file_encrypt($source, $encrypt_file, $key); // encrypt
echo '<p>encrypt file:</p>';
echo '@@##@@';
echo '<hr>';
file_encrypt($encrypt_file, $decrypt_file, $key); // decrypt
echo '<p>decrypt file:</p><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/7fc7563c4182" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">PHP免费学习笔记(深入)</a>”;</p>';
echo '@@##@@';
/** 文件加密,使用key与原文异或生成密文,解密则再执行一次异或即可
* @param String $source 要加密或解密的文件
* @param String $dest 加密或解密后的文件
* @param String $key 密钥
*/
function file_encrypt($source, $dest, $key){
if(file_exists($source)){
$content = ''; // 处理后的字符串
$keylen = strlen($key); // 密钥长度
$index = 0;
$fp = fopen($source, 'rb');
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中文网。
ECTouch是上海商创网络科技有限公司推出的一套基于 PHP 和 MySQL 数据库构建的开源且易于使用的移动商城网店系统!应用于各种服务器平台的高效、快速和易于管理的网店解决方案,采用稳定的MVC框架开发,完美对接ecshop系统与模板堂众多模板,为中小企业提供最佳的移动电商解决方案。ECTouch程序源代码完全无加密。安装时只需将已集成的文件夹放进指定位置,通过浏览器访问一键安装,无需对已有
相关推荐:










