php实现图片加密解密,支持加盐
一个简单的图片加解密函数
使用client跑,不要使用浏览器跑
<?php /** * Created by hello. * User: qq 845875470 * Date: 2016/4/2 * Time: 11:21 */ $notice = <<<A 为了稳定性,必须在客户端跑 格式 :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', '.PNG', 'JPEG'); if(is_file($dir_path) && in_array($suffix, $fix)) { //打开当前文件 $fh = fopen($dir_path, 'r'); //打开文件为流 $stream = fread($fh, filesize($dir_path)); //输出 file_put_contents($temp_dir . '\\' . uniqid('',1), $file . '!' . $salt . '@' . $stream); //关闭句柄 fclose($fh); //是否为复制 //1为复制,0为删除(默认) if(!$is_copy) { echo "加密并删除 : " . $dir_path . "\r\n"; @unlink($dir_path); } else { echo "加密 : " . $dir_path . "\r\n"; } $time3 = microtime(1); echo "此图用时 ", ($time3 - $time2), " S\r\n", "已经用时 ", ($time3 - $time1), " S\r\n\r\n"; } } echo "加密完成\r\n"; } else { echo "path invalid "; return false; } } //图片解密函数 //路径文件夹 //是否为复制(默认不复制) //盐(默认为salt)加密写什么,这里就写什么 function img_deconde($path, $is_copy = 0, $salt = '') { $time1 = microtime(1); $handle = opendir($path); if($handle) { echo "路径:" . $path . "\r\n\r\n"; if(!$salt) $salt = 'salt'; //在指定文件夹下创建临时文件夹 $temp_dir = $path . '\\' . 'temp'; @mkdir($temp_dir, 0777, 1); //核心正则 $reg = "#^(.+?[jpgifbmne]{3,4})!(" . $salt . ")@#im"; $res = array(); $count = 0; while ($file = readdir($handle)) { $time2 = microtime(1); //构造当前文件绝对地址 $file_path = $path . '\\' . $file; if(is_file($file_path)) { //文件句柄 $hf = fopen($file_path, 'r'); //返回流 $stream = fread($hf, filesize($file_path)); fclose($hf); //匹配加的密码 if(preg_match_all($reg, $stream, $res)) { $count++; //清空盐 $stream = str_replace($res[0][0], '', $stream); //输出文件 file_put_contents($temp_dir . '\\' . $res[1][0], $stream); //是否为复制 //1为复制,0为删除(默认) if(!$is_copy) { echo "成功解密删除 : " . $temp_dir . '\\' . $res[1][0] . "\r\n"; @unlink($file_path); } else { echo "解密 : " . $temp_dir . '\\' . $res[1][0] . "\r\n"; } } $time3 = microtime(1); echo "此图用时 ", ($time3 - $time2), " S\r\n", "已经用时 ", ($time3 - $time1), " S\r\n\r\n"; } } if(!$count) { echo "没有有效的加密文件\r\n"; return false; } echo "解密完成\r\n"; } else { echo "path invalid "; return false; } } ?>
Salin selepas log masuk
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas
R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu
By 尊渡假赌尊渡假赌尊渡假赌
Assassin's Creed Shadows: Penyelesaian Riddle Seashell
2 minggu yang lalu
By DDD
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu
By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu
By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas
Tutorial CakePHP
1376
52

