国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP實現加鹽的圖片加密

2020-03-22 18:44:55
字體:
來源:轉載
供稿:網友
PHP加密解密算是老話題,今天給大家分享一篇關于php實現圖片加密解密,支持加鹽的文章,有需要的朋友們可以參考借鑒。希望對大家有所幫助。

一個簡單的圖片加解密函數,使用client跑,不要使用瀏覽器

話不多說,直接上代碼


<?php$notice = <<<A  為了穩定性,必須在客戶端跑  格式 :php path=D:/xxx/uuu type=en is_copy=1 salt=xxx  參數使用空格分開  path    -- 路徑 必須寫  type    -- en加密, de為解密 必須寫  is_copy    -- 1為復制,0為轉移,         不寫默認為轉移  salt    -- 加密鑰匙 加密用什么,解密就用什么  不寫默認為saltA;//如果不是客戶端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;  }}?>

相關推薦:

php 加密擴展庫Mcrypt安裝與示例

PHP 加密解密內部算法

PHP 加密與解密的斗爭

以上就是PHP實現加鹽的圖片加密的詳細內容,更多請關注 其它相關文章!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 会东县| 汕头市| 博白县| 万盛区| 内江市| 博罗县| 新和县| 钟祥市| 洛南县| 翁牛特旗| 潼关县| 外汇| 吉林市| 乐东| 襄垣县| 临颍县| 正宁县| 滦平县| 年辖:市辖区| 崇左市| 菏泽市| 凉山| 嘉善县| 枣庄市| 万全县| 伊春市| 洛隆县| 建德市| 邮箱| 郑州市| 华安县| 原阳县| 永宁县| 镇远县| 三台县| 东海县| 新源县| 新民市| 红河县| 泊头市| 包头市|