PHP实实现现支支持持加加盐盐的的图图片片加加密密解解密密
一个简单的图片加解密函数,使用client跑,不要使用浏览器跑
话不多说,直接 代码
/**
* Created by hello.
* User: qq 845875470
* Date: 2016/4/2
* ime: 11:21
*/
$notice = <<
为了稳定性,必须在客户端跑
格式 :php path=D:/xxx/uuu type=en is_copy=1 salt=xxx
参数使用空格分开
path -- 路径 必须写
type -- en加密, de为解密 必须写
is_copy -- 1为复制,0为转移, 不写默认为转移
salt -- 加密钥匙 加密用什么,解密就用什么 不写默认为salt
A;
//如果不是客户端
if(PHP_SAPI != 'cli') {echo $notice;die;}
//获取参数
$arr = parse_parameter($argv);
//如果路径没设置
if(!isset($arr['path']) || !isset($arr['type'])) {echo $notice;die;}
//如果is_dir没设置
if(!isset($arr['is_copy '])) {$arr['is_copy '] = '';}
//如果salt没设置
if(!isset($arr['salt '])) {$arr['salt '] = '';}
//type为en就加密
if($arr['type'] == "en") img_enconde($arr['path'], $arr['is_copy '], $arr['salt ']);
//type为de就解密
if($arr['type'] == "de") img_deconde($arr['path'], $arr['is_copy '], $arr['salt ']);
function parse_parameter($argv)
{
$arr = array();
//获取参数
for($len=count($argv)-1; $len--; )
{
list($key, $val) = explode('=', $argv[$len]);
$arr[$key] = $val;
}
return $arr;
}
//图片加密函数
//路径文件夹
//是否为复制 (默认不复制)
//盐 (默认为salt)
function img_enconde($path, $is_copy = 0, $salt = 'salt ')
{
$time1 = microtime(1);
$handle = opendir($path);
if(!$salt) $salt = 'salt ';
if($handle)
{
echo "路径:" . $path . "\r\n\r\n";
//在指定文件夹下创建临时文件夹
$temp_dir = $path . '\\' . 'temp';
@mkdir($temp_dir, 0777, 1);
while ($file = readdir($handle))
{
$time2 = microtime(1);
//构造当前文件绝对地址
$dir_path = $path . '\\' . $file;
//获取文件后缀
$suffix = strrchr($file, '.');
//图片后缀
$fix = array('.jpg ', '.gif ', '.bmp', '.png ', '.jpeg ', '.JPG ', '.GIF', '.BMP', '.P
NG ', 'JPEG ');
if(is_file($dir_path) && in_array($suffix, $fix))
{
//打开当前文件
$fh = fopen($dir_path, 'r');
//打开文件为流