Проблема с шифрованием и дешифрованием файла Word DOCX в PHP

Я пытался использовать php mcrypt TripleDES для шифрованияdocx форматировать файлы.

Когда я пытался расшифровать файл, я получаю сообщение об ошибке следующим образом.

The Office Open XML file file_name cannot be opened because there are problems with the contents.

Вот код ниже

<code>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;
}
</code>

Любая помощь будет оценена.

 CodesInChaos13 мая 2012 г., 10:38
Ваш код неполный. Вы не показываете свой код, связанный с IO. Пожалуйста, разместите полную программу, которая показывает проблему. Я подозреваю, что файл где-то обрабатывается как текст, а не как двоичный файл.
 Alix Axel11 мая 2012 г., 19:37
Decrypt ничего не возвращает, это опечатка?
 user41613 мая 2012 г., 08:00
Да, это опечатка, действительно извините за это ... на самом деле он вернет $ результат
 Joop Eggen13 мая 2012 г., 10:23
Вы пытались сначала без шифрования, дважды возвращая $ source? Чтобы исключить тривиальные вторичные ошибки. mcrypt_module_close () отсутствует.
 CodesInChaos13 мая 2012 г., 10:36
Не причина вашей проблемы, но вы неправильно используете IV. Вы не должны передавать этоEncrypt, ноEncrypt должен генерировать новый каждый раз и добавлять его к выводу. А такжеDecrypt следует прочитать это из вывода.

Ответы на вопрос(1)

Решение Вопроса

Я ждал решения более 4 месяцев. Наконец я нашел ценный ответ в Google. Теперь я исправил это, используя ссылку ниже.

http://www.howwhywhat.in/how-to-implement-common-file-encryption-and-decryption-between-c-and-php/

Лучшая часть, у этого есть живые примеры также :)

Ваш ответ на вопрос