Вопрос по encryption, php – Проблема с шифрованием и дешифрованием файла Word DOCX в PHP

2

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

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

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

Вот код ниже

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

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

Decrypt ничего не возвращает, это опечатка? Alix Axel
Вы пытались сначала без шифрования, дважды возвращая $ source? Чтобы исключить тривиальные вторичные ошибки. mcrypt_module_close () отсутствует. Joop Eggen
Ваш код неполный. Вы не показываете свой код, связанный с IO. Пожалуйста, разместите полную программу, которая показывает проблему. Я подозреваю, что файл где-то обрабатывается как текст, а не как двоичный файл. CodesInChaos
Да, это опечатка, действительно извините за это ... на самом деле он вернет $ результат user416
Не причина вашей проблемы, но вы неправильно используете IV. Вы не должны передавать этоEncrypt, ноEncrypt должен генерировать новый каждый раз и добавлять его к выводу. А такжеDecrypt следует прочитать это из вывода. CodesInChaos

Ваш Ответ

1   ответ
5

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

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

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

Похожие вопросы