我正在用

PHP编写一个小脚本来备份我的文件.在我从服务器传输文件之前,我想加密它们.

我在我的脚本的早期版本中通过在我的Linux服务器上使用exec()和OpenSSL来做到这一点.现在我正在寻找一个本机PHP函数来完成这项工作,主要是为了更好的错误处理.

问题是我的文件可能变大(如20gb).此外,我必须在shell上使用命令再次解密文件.

有谁知道如何加密PHP中的大文件,然后在命令行解密?

我现在正在使用PHP的mcrypt函数来加密:

// IV:

$iv = mcrypt_create_iv($ivSize,MCRYPT_RAND);

// Create new random Key:

$key = openssl_random_pseudo_bytes(32);

// Encrypt:

$fileStream = fopen($file,"r");

$encFileStream = fopen($file . ".enc.data","w");

$opts = [

'iv' => $iv,'key' => $key,'mode' => 'cbc'

];

stream_filter_append($encFileStream,'mcrypt.rijndael-256',STREAM_FILTER_WRITE,$opts);

stream_copy_to_stream($fileStream,$encFileStream);

fclose($fileStream);

fclose($encFileStream);

// Encrypt random generated key and save it:

$encryptedKey = null;

openssl_public_encrypt($key,$encryptedKey,$publickey);

file_put_contents($file . ".enc.key",$encryptedKey);

// Save Initial Vetor:

file_put_contents($file . ".enc.iv",$iv);

// Delete unencrypted file:

unlink($file);

现在要在linux命令行上解密我也尝试使用mcrypt.但我遇到的最大问题是我不知道如何将IV添加到mdecrypt.到目前为止,我的命令是:

mdecrypt --decrypt -m CBC -f key.key archive_hallo.tar.gz.enc.data

这当然不起作用,因为缺少IV.那么,有没有人知道如何将IV添加到我的mdecrypt命令中?

php怎样加密文件,如何使用php加密大文件并通过命令行解密?相关推荐

  1. php webuploader大文件,web uploader 上传大文件总结

    由于业务需要,需要上传大文件,已有的版本无法处理IE版本,经过调研,百度的 webuploader 支持 IE 浏览器,而且支持计算MD5值,进而可以实现秒传的功能. 大文件上传主要分为三部分,预上传 ...

  2. php如何导入大文件数据库,PHP读取CSV大文件导入数据库的示例

    文章详细介绍了csv文件在php中快速导入到mysql数据库中的例子,虽然从最简单的几百MB的到最后使用插件实现几个GB数据导入中间有一些嗑碰了,但结果还是好的. 对于数百万条数据量的CSV文件,文件 ...

  3. linux大文件拷贝,Linux如何提高大文件的拷贝效率

    Linux系统操作中,当你在进行机器直接的拷贝时,遇到大文件的时候非常浪费时间,特别是将文件同时拷贝到多台机器上的时候,那么有什么好的方法能够提高大文件的拷贝效率呢?一起来学习下吧. 你可以从源机器逐 ...

  4. python读取大文件-强悍的Python读取大文件的解决方案

    Python 环境下文件的读取问题,请参见拙文 Python基础之文件读取的讲解 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适 ...

  5. python读取大文件-python快速读取一个大文件内容(瞎猜)

    问题: python有没有一种方法是比简单的readlines()方法更快的方式去读取单个文件,比如,一个从头读文件,一个从尾部读文件,再或者预先将一个文件的行索引分成几个部分来读(文件行内容的操作顺 ...

  6. java 大文件 md5_使用Java为大文件生成MD5非常慢

    我用nio重写你的代码,代码有点像下面: private static String generateMD5(FileInputStream inputStream){ if(inputStream= ...

  7. python读取大文件的坑_python读取大文件踩过的坑——读取txt文件词向量

    在读取https://github.com/Embedding/Chinese-Word-Vectors中的中文词向量时,选择了一个有3G多的txt文件,之前在做词向量时用的是word2vec,所以直 ...

  8. 华为云服务器 大文件,云服务器上传大文件

    云服务器上传大文件 内容精选 换一换 本节操作介绍本地MacOS系统主机通过安装"Microsoft Remote Desktop for Mac"工具向Windows云服务器传输 ...

  9. php curl 传输大文件,空白目录 · php下载大文件curl · 看云

    假设一个场景: 当用户需要通过我们提供的下载服务,来下载一个较大的文件(200M-2G)时,我们服务端应该如何来满足这个服务呢? 且当我们的服务端是采用nginx+php的架构时,该如何解决呢. 作为 ...

最新文章

  1. 不止摩尔定律,计算领域值得学习的定律还有哪些?
  2. 变更管理、信息系统安全管理、项目风险管理
  3. Spring扫描类过程解析和案例
  4. php远程连接403,php中出现“ HTTP 异常 403 - 禁止访问”解决方法 总结
  5. MongoDB的RestAPI微服务组件--Mongo-Rest介绍
  6. quartz框架_定时任务调度框架Quartz
  7. 关于Andrdoid编程中出现BufferQueue的“queueBuffer: fence is NULL”的一种解决方案
  8. 《Java线程与并发编程实践》—— 1.2 操作更高级的线程任务
  9. excel打开超链接不使用浏览器,使用默认图片浏览软件
  10. 在html中做框架的页面,网页中的框架(详解)
  11. mumu模拟器Android版本才6,MuMu模拟器官方下载
  12. 如何快速开发一款APP
  13. WEB-QTP随想录—李密的猜想
  14. ICQ官方中文版 v10.0.12161.0
  15. 对《A Fast Parallel Algorithm for Thinning Digital Patterns》一文的理解(上)
  16. 润乾报表CookBook与使用
  17. vue 使用vue-canvas-poster生成自定义海报
  18. 客户端评论盖楼(内涵段子评论盖楼)实现思路
  19. 重构:改善既有代码的设计_技术债务:通过重构来拯救传统代码
  20. 学软件开发为什么要选 “猿代码任务制培训模式”?

热门文章

  1. Spring Boot整合 Sentry 监控项目日志
  2. python 操作.mat文件
  3. Deepsort_V2 2020中兴捧月阿尔法赛道多目标检测和跟踪初赛第一名
  4. 卷积神经网络中的各种池化操作
  5. faiss简介及示例
  6. pycharm Application cannot start in headless mode
  7. pytorch mseloss测试
  8. 四种常见的激活函数画图及简单改造
  9. opencv图像和二维数组相互转换
  10. 青龙羊毛——帮多多(教程)