php 使用异或(XOR)加密/解密文件

2023-05-16

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 '<img src="'.$source.'" width="200">';
echo '<hr>';

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

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

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

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

/** 文件加密,使用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;
	}
}

?>

相关文章:《C 使用异或(xor)加密/解密文件》



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php 使用异或(XOR)加密/解密文件 的相关文章

随机推荐

  • Rust 学习,与 node.js 交互

    1 背景 近期 xff0c 参与了一个活动 xff1a 学 Rust xff0c 免费拿树莓派 主要内容为开发应用 xff0c 在 node js 中调用 Rust 函数 实际上我认为在很多地方都能用上 Rust xff0c 鉴于活动要求
  • Zeal--一款支持207个离线文档的浏览器

    小编作为一个全栈工程师 xff0c 每个语言都会一点 xff0c 在写前端和后端的时候 xff0c 时长会打开好几个开发文档 xff0c 比如java css html 等 xff0c 有没有打开一个软件 xff0c 就能打开所有的帮助文档
  • Linux之间图像界面的传输 ssh -X username@{remote ip}

    之前用windows平台连接Linux平台 xff0c 总是通过Xshell 43 Xming来传输Linux系统的界面 现在在linux系统平台下 xff0c 通过ssh连接另一个Linux系统 xff0c 如何将远程Linux的图形界面
  • 利用图片Etag判断用户

    原理 xff1a 不使用Javascript xff0c SESSION xff0c COOKIES xff0c FLASH 利用图片Etag识别用户 1 根据用户的 REMOTE ADDR 与 HTTP USER AGENT 生成唯一Et
  • 音视频基础知识---封装格式介绍

    音视频基础知识汇总 xff1a 音视频基础知识 协议相关RTSP RTMP HLS 音视频基础知识 封装格式 音视频基础知识 视频编码格式 音视频基础知识 音频编码格式 音视频基础知识 像素格式RGB 音视频基础知识 像素格式YUV 1 什
  • php output_buffering 缓存使用

    buffer是一个内存地址空间 xff0c linux系统默认大小一般为4096 4kb 主要用于存储速度不同步的设备或优先级不同的设备之间传递数据的区域 通过buffer可以使进程之间的相互等待变少 例如 xff0c 当你打开一个文本编辑
  • 同一域名对应不同IP,访问指定主机文件内容的方法

    PHP获取远程主机文件内容方法很多 xff0c 例如 xff1a file get contents xff0c fopen 等 lt php echo file get contents 39 http demo fdipzone com
  • php 实现BigPipe分块输出

    原理 xff1a 利用 ob flush 与 flush 将缓冲区的内容提前输出 xff0c 浏览器可提早加载这部分的内容 xff0c 无需等待所有输出完成再加载 将页面内容划分为一个个小块 xff0c 输出一个后再输出下一个 xff0c
  • php 利用fsockopen GET/POST 提交表单及上传文件

    php 利用 fsockopen GET POST 提交表单及上传文件 1 GET get php lt php host 61 39 demo fdipzone com 39 port 61 80 errno 61 39 39 errst
  • php 过滤html标记属性类

    php 过滤html标记属性类 HtmlAttributeFilter class php lt php HTML Attribute Filter Date 2013 09 22 Author fdipzone ver 1 0 Func
  • php HTTP请求类,支持GET,POST,Multipart/form-data

    PHP HTTP请求类 xff0c 支持GET POST Multipart form data HttpRequest class php lt php HttpRequest class HTTP请求类 xff0c 支持GET POST
  • HTTP 204 与 205 应用

    HTTP 204 no content 表示响应执行成功 xff0c 但没有数据返回 xff0c 浏览器不用刷新 xff0c 不用导向新页面 HTTP 205 reset content 表示响应执行成功 xff0c 重置页面 xff08
  • apache mod_xsendfile 让php提供更快的文件下载

    服务器提供一个文件下载 xff0c 一般使用一个url指向服务器中的文件即可提供下载 但这样就不能进行统计 xff0c 权限检测等操作 因此 xff0c 一般使用php提供下载 xff0c 代码如下 xff1a lt php file 61
  • HTML5 使用application cache 接口实现离线数据缓存

    1 配置缓存文件 cache manifest MIME TYPE xff1a text cache manifest 文件名称 xff1a name appcache 作用 xff1a 用于配置需要缓存的文件 2 使用方法 在服务器上添加
  • XSS跨站测试代码大全

    XSS跨站测试代码大全 39 gt lt script gt alert document cookie lt script gt 61 39 gt lt script gt alert document cookie lt script
  • 范数、神秘值

    范数 格式 xff1a n 61 norm A p 功能 xff1a norm函数可计算几种不同类型的矩阵范数 依据p的不同可得到不同的范数 下面是Matlab中help norm 的解释 NORM Matrix or vector nor
  • anaconda3 安装(自用,记录用)

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 目录 前言 一 anaconda 卸载 二 anaconda3安装 1 Anaconda下载 2 Anaconda配置 三 Anacond
  • mysql 优化 insert 性能

    mysql 的 insert 语句语法 insert into 96 table 96 96 field1 96 96 field2 96 values 39 value1 39 39 value2 39 提高insert 性能的方法 1
  • 使用onbeforeunload事件检测窗口是否刷新或关闭

    onunload xff0c onbeforeunload 在页面刷新或关闭时调用 xff0c 区别在于 xff1a onbeforeunload 是在页面刷新或关闭前触发 xff0c 这时浏览器并未请求服务器读取新页面 xff0c 因此o
  • php 使用异或(XOR)加密/解密文件

    php 使用异或 xff08 XOR xff09 加密 解密文件 原理 xff1a 将文件每一个字节与key作位异或运算 xff08 XOR xff09 xff0c 解密则再执行一次异或运算 代码如下 xff1a lt php source