texcontem ([personal profile] texcontem) wrote2014-06-10 09:16 am
Entry tags:

Как снять пароль с файлов docx/xlsx

Периодически на работе возникала потребность снять защиту с файлов в формате docx или xlsx. Например, в таком файле находится форма, которую нужно заполнить и отослать, но файл зачем-то защищен паролем и редактировать его нельзя. Поиски в интернете навели на следующий способ.

Оказывается, файлы docx/xlsx по сути являются контейнером, содержащим в себе множество файлов XML с описанием документа, его содержимого и настроек. С этими файлами и будем работать. Понадобится Total Commander либо программа-архиватор (например, 7-zip).

docx
Открываем контейнер: в Total Commander'е выделяем файл и нажимаем Ctrl+PageDown; при использовании архиватора выделяем файл и просим архиватор его распаковать в отдельную папку. Если вдруг архиватор «не понимает», что перед ним архив — смените расширение файла на, скажем, zip.

В полученном наборе файлов и каталогов переходим в каталог word и находим файл settings.xml. Открываем этот файл в любом текстовым редакторе, например, в Блокноте.
Ищем блок w:documentProtection. Блок этот будет выглядеть примерно так:



Удаляем содержимое блока. Границы блока определяются символами < и >, сочетание символов /> означает конец блока — убедитесь, что не удаляете ничего лишнего. В результате должно остаться лишь



Сохраняем файл settings.xml, закрываем его.

Собираем контейнер заново: в Total Commander'е просто выходим из него, а при использовании архиватора упаковываем наш набор файлов и каталогов в один архив.

Меняем расширение архива на docx. Получаем готовый к работе файл docx без пароля.


xlsx
В файлах xlsx таким способом снимается только защита листа от изменений. Если файл xlsx защищен паролем полностью, способ не сработает.

Открываем контейнер точно так же, как и в случае с docx.

В полученном наборе файлов и каталогов переходим в каталог xl/worksheets/ и смотрим наличие файлов sheet1.xml или sheet2 или что-то вроде того. В одном из них содержится информация о пароле. Каждый файл открываем Блокнотом и ищем блок sheetProtection, выглядеть этот блок будет примерно так:



Найденный блок удаляем. От начала — < до конца />.

Сохраняем наш файл, закрываем его.

Собираем контейнер заново: в Total Commander'е просто выходим из него, а при использовании архиватора упаковываем наш набор файлов и каталогов в один архив.

Меняем расширение архива на xlsx. Получаем готовый к работе файл xlsx без защищенных листов.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting