巅云智能建站平台搭建版(创业流派版)火爆上线,毕生受权!新增:文章智能收罗+全站真静态打包+都会分站+智能小法式+不法词过滤+H5自顺应+智能链词等功效功效概况
赞助文档Help

PHP完成撑持加盐的图片加密解密

一佰互联网站建造(www.taishanly.com) 宣布日期 2020-04-26 09:03:51 阅读数: 131

一个简略的图片加解密函数,操纵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 . "

";
    //在指定文件夹下建立姑且文件夹
    $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 . "
";
          @unlink($dir_path);
        }
        else
        {
          echo "加密 : " . $dir_path . "
";
        }
        $time3 = microtime(1);
        echo "此图用时 ", ($time3 - $time2), " S
", "已用时 ", ($time3 - $time1), " S

";
      }
    }

    echo "加密完成
";
  }
  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 . "

";
    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] . "
";
            @unlink($file_path);
          }
          else
          {
            echo "解密 : " . $temp_dir . "" . $res[1][0] . "
";
          }
        }
        $time3 = microtime(1);
        echo "此图用时 ", ($time3 - $time2), " S
", "已用时 ", ($time3 - $time1), " S

";
      }
    }
    if(!$count)
    {
      echo "不有用的加密文件
";
      return false;
    }
    echo "解密完成
";
  }
  else
  {
    echo "path invalid ";
    return false;
  }
}

?>

以上便是这篇文章的全数内容,但愿对大师的进修或任务能有必然的赞助。

一佰互联是天下着名建站品牌办事商,咱们有九年、网站建造、网页设想、php开辟和域名注册及假造主机办事经历,供给的办事更是天下着名。最近几年来还整合团队上风自立开辟了可视化多用户”“3.0平台版,拖拽排版网站建造设想,轻松完成pc站、手机微网站、小法式、APP一体化全网营销网站扶植 ,已胜利的为天下上百家收集公司供给自助建站平台搭建办事。

相干消息more

17
12月
设想手机网站要有层次需把握哪些重点

手机网站从尺寸设想上就与电脑网站有很大差别,想要设想妙手机网站须要搞清晰此中的设想重点!假定你是客户,当你用手机翻开一个网站起首会看甚么?是... >>概况

18
04月
站长建立链接时须要注重的5大忌讳

建立链接是最有用的搜刮引擎优化技能之一,由于高品质的链接能够给你的网站带来可观的流量。链接是搜刮引擎权衡一个网站权重的主要目标之一,丰硕、优... >>概况

06
12月
甚么是SEO?优化真的能进步网站排名吗?

甚么是SEO?优化真的能进步网站排名吗?良多人问我,网站守旧后你们经由历程优化网站建造我的网站能排几名?起首:SEO指网站内容的优化和网站外链优... >>概况

12
05月
专业网站扶植,时髦高端

专业网站扶植是一家主营专业网站扶植、专业网站建造、专业网页点窜等与网站常识手艺有关的公司,多年来积累的丰硕的建造经历。该公司一向走在时期的前... >>概况

高端网站扶植

美工统筹SEO,为企业电子商务营销助力!

德律风:

023-85725751
建站

产物

域名注册 假造主机 云办事器 企业邮局
智能建站 APP打包 微站/小法式 创业平台
网站推行 媒体营销 智能收罗 AI机械人
400德律风 短信营销 店销机械人
私家定制 流派网站