首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mcrypt用于完整的文件加密

mcrypt用于完整的文件加密
EN

Stack Overflow用户
提问于 2010-11-09 04:43:01
回答 2查看 1.2K关注 0票数 0

我像这样使用mcrypt

代码语言:javascript
复制
<?php
   $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
   $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
   $key = "This is a very secret key";
   $text = "Meet me at 11 o'clock behind the monument.";
   echo strlen($text) . "\n";

   $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
   echo strlen($crypttext) . "\n";
?>

这可以很好地加密某些文本。但是,现在我需要将其保存到一个文件,并加密整个文件。使用php5。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-09 04:46:30

只要做一个小小的改变就行了:

代码语言:javascript
复制
<?php
   $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
   $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
   $key = "This is a very secret key";
   $text = file_get_contents('path/to/your/file');
   echo strlen($text) . "\n";

   $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
   file_put_contents('path/to/your/file', $crypttext);   
?>

如果文件确实太大,请将其分解为128的倍数的块,并对每个块进行加密。

票数 1
EN

Stack Overflow用户

发布于 2010-11-09 04:46:24

最简单的解决方案是只读入文件,执行加密,然后将文件写回。

如果您正在处理非常大的文件,这将遇到内存问题,但对于较小的文件,它允许您在不需要任何额外代码的情况下执行此操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4127874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档