* by hello

* 84587470

*

* php 文件加密类,支持设置密码,图片,文件都可以!情侣们的福音!!!

**/

$from = 'C:\Users\Administrator\Desktop\t\test.png';$to = 'C:\Users\Administrator\Desktop\t\\';//加密

encrpty::en($from , $to , 'xxxx');//解密

encrpty::de('C:\Users\Administrator\Desktop\t\00f8fbb037778e31455211b4bdcb0874' , $to , 'xxxx');classencrpty

{const DS =DIRECTORY_SEPARATOR;const FILE = 1;const DIRECTORY = 2;const ALL = 3;/**

* 文件加密

*

* @param $from 源

* @param $to 保存位置

* @param string $slat 密码

*

* @return array*/

public static function en($from , $to , $slat = 'xxx')

{$data =['sign' => 1 ,

'msg' => '' ,];try{$imgObj = new \SplFileInfo($from);$stram = implode('' ,['@@_____' ,

$slat ,

'@@_____' ,

$imgObj->getBasename() ,

'@@_____' ,]). (file_get_contents($imgObj->getRealPath()));$stram = gzcompress($stram);file_put_contents(static::replaceToSysSeparator($to) . md5($imgObj->getRealPath()) , ($stram));

}catch (\Exception $exception)

{$data['sign'] = 0;$data['data'] = $exception->getMessage();

}return $data;

}/**

* 解密

*

* @param $from 源

* @param $to 保存位置

* @param string $slat 密码

*

* @return array*/

public static function de($from , $to , $slat = 'xxx')

{$data =['sign' => 1 ,

'msg' => '' ,];try{$imgObj = new \SplFileInfo($from);$stram = file_get_contents($imgObj->getRealPath());$stram = gzuncompress($stram);$reg = implode('' ,['#' ,

'^@@_____' ,

preg_quote($slat , '#') ,

'@@_____' ,

'(.*?)' ,

'@@_____' ,

'#i' ,]);preg_match($reg , $stram , $res);if(isset($res[1]))

{

self::mkdir_($to);$result = preg_replace($reg , '' , $stram);file_put_contents(static::endDS($to) . $res[1] , $result);

}else{$data['sign'] = 0;$data['data'] = '解密出错';

}

}catch (\Exception $exception)

{$data['sign'] = 0;$data['data'] = $exception->getMessage();

}return $data;

}/**

* 自动为路径后面加DIRECTORY_SEPARATORY

*

* @param string $path 文件夹路径

*

* @return string*/

public static function endDS($path)

{return rtrim(rtrim(static::replaceToSysSeparator($path) , '/') , '\\') . static::DS;

}/**

* @param $path

*

* @return string*/

public static function replaceToSysSeparator($path)

{return strtr($path ,['\\' => static::DS ,

'/' => static::DS ,]);

}/**

* @param $path

*

* @return string*/

public static function replaceToUrlSeparator($path)

{return strtr($path ,['\\' => '/' ,]);

}/**

* 格式化字节大小

*

* @param number $size 字节数

* @param string |int $de

*

* @return string 格式化后的带单位的大小*/

public static function byteFormat($size , $de = 2)

{$a = array("B" ,

"KB" ,

"MB" ,

"GB" ,

"TB" ,

"PB" ,);$pos = 0;while ($size >= 1024)

{$size /= 1024;$pos++;

}return round($size , $de) . " " . $a[$pos];

}/**

* 创建文件夹

*

* @param $path

* @param int $mode

*

* @return bool*/

public static function mkdir_($path , $mode = 0777)

{return !is_dir(($path)) ? mkdir(($path) , $mode , 1) : @chmod($path , $mode);

}/**

* 列出文件夹里文件信息

*

* @param $path

* @param callable|null $callback

* @param int $flag

*

* @return array*/

public static function listDir($path , callable $callback = null , $flag = self::ALL)

{$files =[];if(is_dir($path) && is_readable($path))

{try{$directory = new \FilesystemIterator ($path);$filter = new \CallbackFilterIterator ($directory , function($current , $key , $iterator) use ($flag) {switch ($flag)

{case static::FILE:

return $current->isFile();case static::DIRECTORY:

return $current->isDir();default:

return true;

}

});foreach ($filter as $info)

{if(is_callable($callback))

{$files[] = call_user_func_array($callback ,[$info ,]);

}else{$files[] = $info;

}

}

}catch (\Exception $e)

{$files =[];

}

}return $files;

}

}

php如何加密图片,php实现图片加密解密,支持设置密码 (两年后版本!)相关推荐

  1. windows环境实现批量加密文件,并创建加密文件同名(不带后缀)的文件夹,然后把加密文件和图片和文本放入这个文件夹。

    1. 需求 我想把资源文件先加密成压缩文件,然后同时创建每个加密压缩文件同名的文件夹,同时需要把这个加密文件拷贝到这个同名的文件夹,然后还需要把一个图片和一个文本文档同时放进这个文件夹,然后在不加密压 ...

  2. 关于图片转base64的加密解密

    这个插件裁剪完的图片都是 base64 加密的字符串,上传头像也就涉及到了如何把加密的字符串转换成图片的问题. 以下是代码: /*** @Description: 将base64编码字符串转换为图片* ...

  3. 图片加密(一)颜色加密

    图片加密(一)颜色加密 前置内容:图片的储存方式 图片是由一个个像素点组成的.对于有色图片来说,每一个像素点的颜色可以由红绿蓝三种颜色合成,也就是可能听说过的RGB. 在计算机中,用0~255来表示这 ...

  4. ***实战:教你轻松查看QQ空间加密后的好友图片

    ***实战:教你轻松查看QQ空间加密后的好友图片 S.S.F Simeon 最近听说某情侣将自己的生活照片上传至QQ空间,且进行了加密,却不料被好事者在网上公布,引起哄然大波,由于这些照片中有一些是两 ...

  5. 用JS实现:图片压缩、图片加密

    本文将用JavaScript实现两个颇有技术含量的功能:图片压缩.图片加密. 最终效果:可实现将任意图片加密.压缩,并保存到一个独立的html页面中,输入正确的密码,才能看到原图. 第一步.压缩图片 ...

  6. C#实现基于Logistic映射混沌加密算法(可加密静态图片和动态图片)

    这是本菜鸡在<信息隐藏>中实现的图像加密,选用的是logistics混沌加密算法,希望对你的课设或项目有所帮助 文章目录 基于Logistic映射混沌加密算法 逻辑斯蒂(Logistic) ...

  7. 8tupian图片加密平台v2.7 对图片进行加密的网络平台+包含三种模式上传图片+可二次开发修改

    8tupian图片加密平台v2.7 对图片进行加密的网络平台+包含三种模式上传图片+可二次开发修改 8tupian图片加密平台采用 php+mysql 的环境,php 版本是 php5.6. 源码是通 ...

  8. 【Java】如何根据图片的网络url,下载图片,并base64加密

    一.问题 1.1.环境 电脑环境:Windows 10: 开发工具:IntelliJ IDEA: JDK环境: Jdk1.8: 1.2.问题 我们在开发过程中,会进场要将网络上的图片资源,下载下来,经 ...

  9. mysql 图片base64_关于图片的Base64编码

    什么是Base64编码 Base64编码是一种图片处理格式,通过特定的算法将图片编码成一长串字符串,在页面上显示的时候,可以用该字符串来代替图片的url属性. base64编码就是长得像下面这样子的代 ...

最新文章

  1. 应用进退法确定一维搜索区间_NMR-如何确定官能团含量(MestReC)
  2. android获取string.xml的值(转)
  3. jQuery和AngularJS的区别小分析
  4. 1103 Integer Factorization (30 分)【难度: 中 / 爆搜】
  5. [OS复习]虚拟存储管理技术 1
  6. 0429《与孩子一起学编程》读书笔记1
  7. mysql数据库实现修改密码代码_MySQL数据库的更改密码(附源代码)
  8. Redhat 7搭建iscsi存储系统
  9. 329例精选matlab算法原理及源码详解——老生谈算法
  10. 反编译android sdk,反编译apk,修改sdk文件,重新签名
  11. 蜂鸣器c语言相关程序,蜂鸣器c语言程序.doc
  12. dell服务器开机进系统黑屏,dell电脑开机黑屏,教你几步解决_故障
  13. Android微信登录引起的内存泄漏
  14. 解决VirtualBox虚拟电脑控制台严重错误
  15. 重定向和转发的区别+使用情景
  16. springboot多module依赖
  17. 《LKD3粗读笔记》(6)内核数据结构
  18. P1983 [NOIP2013 普及组] 车站分级——拓扑排序+dp
  19. windows下批处理删除文件夹、删除文件、if exist用法
  20. 2020-7-28 ------2021-2-2 年度总结

热门文章

  1. Redis数据类型--散列类型
  2. 求一个数的阶乘值c语言代码,求10000的阶乘(c语言代码实现)
  3. C语言 全局变量和局部变量区别 - C语言零基础入门教程
  4. Python实现AES加密进行PKCS5Padding的填充
  5. java jdom 设置第1行_Java通过jdom操作生成XML文件的实例代码下载
  6. C语言调试技巧:stdin,stdout,stderr
  7. 有人不会使用计算机的反义,现代汉语练习题及答案
  8. python换源还是不行_浅析Python3 pip换源问题
  9. 单片机c语言 外部中断,单片机C语言代码:外部中断,按下中断按键LED不亮,LED1正常亮...
  10. 竞赛数据清洗缺失值_Kaggle 数据清洗挑战 Day 1 - 手把手教你五步处理缺失值