Несоответствия FTP-клиента Apache и файл с кодировкой DES - PullRequest
0 голосов
/ 22 июня 2011

Используя FTP-клиент Apache, я загружаю файл.Согласно уже существующей логике, это декодируется с использованием класса Cipher

. Это то, что я использую

Cipher cipher = Cipher.getInstance ("DES / CBC / NoPadding")

У меня 2 проблемы:

  1. Файл, загружаемый клиентом Apache, отличается от файла, который я загружаю с помощью другого клиента (FileZilla).Первоначально я думал, что это может быть неполный файл, но я вижу строку в файле, которая говорит

end

Могу ли я считать это полным файлом?

  1. Если бы мне пришлось дважды зашифровать один и тот же файл, используя один и тот же алгоритм, я бы получал один и тот же результирующий файл оба раза.(Я знаю, что это тривиально, но я плохо знаком с шифрованием)

Спасибо, Прия

1 Ответ

0 голосов
/ 22 июня 2011

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

Не обязательно, при использовании режима CBC необходимо указать вектор инициализации (или он может генерировать случайный). Это одноразовая часть данных, которая выполняется в XOR с первым блоком простых данных перед тем, как быть зашифрована симметричным ключом. Результатом является то, что кусок данных или файл, зашифрованный с использованием одного и того же алгоритма, но с разным IV, приведет к другому тексту шифра. Это та же концепция, что и использование соли для хэшей. Вы можете использовать режим ECB, который не использует вектор инициализации, но, очевидно, менее безопасен.

Это, как говорится, если вы должны были зашифровать файл A с вектором инициализации A. Затем снова зашифровать файл A, с вектором инициализации B. Затем расшифровать оба с использованием подходящих векторов инициализации, вы должны получить тот же файл, что и исходный , байт за байтом.

...