как бороться с паролем в кодировке CP-1252 под linux? - PullRequest
1 голос
/ 15 апреля 2010

У меня следующая проблема. Мне нужно создать zip-файл в Linux с паролем, предоставленным другой стороной, который закодирован с помощью CP-1252. Я попытался изменить кодировку этого пароля на UTF-8. Затем я сделал zip-файл, защищенный этим паролем в кодировке utf-8. Однако файл нельзя разархивировать в Windows с исходным паролем, закодированным в CP-1252.

С уважением,

Gordon

Ответы [ 2 ]

1 голос
/ 15 апреля 2010

Обработка ZIP-файла с любым содержимым (именами файлов или паролями), которые не являются ASCII, сопряжена с трудностями и лучше избегать. Вы должны сделать все возможное, чтобы ограничить допустимые пароли простым ASCII, который будет работать где угодно.

Каждая ОС будет обрабатывать байты в своей собственной системной кодировке по умолчанию, которая, вероятно, (но не обязательно) будет UTF-8 в недавнем Linuxen, UTF-8 в OS X и никогда не UTF-8 в Windows. Даже если вы создадите ZIP-файл с паролем, отличным от ASCII, закодированным в cp1252, он будет доступен для чтения только при установке Windows в Западной Европе. И некоторые инструменты ZIP по-прежнему ведут себя по-другому (например, zau-декодер nautilus, похоже, использует ISO-8859-1 для паролей, даже когда он использует UTF-8 для имен файлов). Все дело в разбитом беспорядке.

Вы можете создавать ZIP-файлы с паролями cp1252 в Linux. Какой инструмент вы используете в настоящее время для создания парольных файлов? Инструмент командной строки zip просто принимает байты и не заботится о том, в какой кодировке они находятся, поэтому для обеспечения того, чтобы любые символы, не входящие в ASCII, которые вы печатаете на клавиатуре, когда он запрашивает пароль, были в cp1252, вы должны установить кодировка вашего терминала в cp1252. Для GNOME по умолчанию «Терминал» это можно сделать в Терминале-> Установить кодировку символов-> Windows-1252 (возможно, вам придется добавить / удалить эту кодировку, если ее нет в списке).

0 голосов
/ 11 июня 2012

Посмотрите на проект 7z, у меня это сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...