在php中加密和解密word docx文件时出现问题

在php中加密和解密word docx文件时出现问题,php,encryption,mcrypt,Php,Encryption,Mcrypt,我尝试使用php-mcrypt-TripleDES对docx格式文件进行加密 当我试图解密文件时,我得到如下错误 无法打开Office Open XML文件名,因为存在 内容有问题 下面是代码 function Encrypt($source,$key,$iv) { $cipher = mcrypt_module_open(MCRYPT_3DES, '', 'cbc', ''); mcrypt_generic_init($cipher, $key, $iv);

我尝试使用php-mcrypt-TripleDES对docx格式文件进行加密

当我试图解密文件时,我得到如下错误

无法打开Office Open XML文件名,因为存在 内容有问题

下面是代码

function Encrypt($source,$key,$iv) {
      $cipher = mcrypt_module_open(MCRYPT_3DES, '', 'cbc', '');
      mcrypt_generic_init($cipher, $key, $iv);
      $result = mcrypt_generic($cipher, $source);
      mcrypt_generic_deinit($cipher);
      return $result;
}


function Decrypt($source,$key,$iv) {

  $cipher = mcrypt_module_open(MCRYPT_3DES, '', 'cbc', ''); 
  mcrypt_generic_init($cipher, $key, $iv);
  $result = mdecrypt_generic($cipher, $source);
  mcrypt_generic_deinit($cipher);
  return $result;
}

任何帮助都将不胜感激。

我已经等待解决方案4个多月了。 最后我在谷歌上找到了一些有价值的答案。现在我已经用下面的链接修复了它


最好的部分是,它也有活生生的例子:)

Decrypt
没有返回任何东西,这是一个输入错误吗?是的,这是一个输入错误,真的很抱歉。。。实际上,它将返回$ResultId您是否先尝试不加密,然后两次返回$source?排除次要错误。mcrypt_module_close()丢失。这不是问题的原因,但您误用了IV。您不应将其传递给
加密
,但
加密
应每次生成一个新的,并将其预先发送到输出。而
Decrypt
应该从输出中读取。您的代码不完整。您不显示与IO相关的代码。请发布一个显示问题的完整程序。我怀疑该文件被视为文本而不是二进制文件。