Microsoft's Docx document format is actually an XML based set of files and folder structures compressed into a zip container file. Renaming the .docx as a .zip file will allow you to navigate it.
First, make a copy of the original .docx file in question.
Rename the file with a .zip file extension. You may have to change your Windows Explorer view settings to view the file extensions in order to do this.
Once renamed, double click to open the .zip file.
There is a subfolder named word with a file named settings.xml in it.
Copy the file settings.xml out of the archive.
Right click on settings.xml and select open with, and select notepad.
Search for enforcement and set the value from 1 to 0
Save the settings.xml file
Copy the settings.xml file
Paste the settings.xml file back into the .zip file archive.
Confirm that you want to replace the existing file.
Rename the .zip back to have a .docx extension.
You may now edit it without protection.
Here is the entire DocumentProtection tag text contained in the settings.xml:
<w:documentProtection | |||||||||||
w:edit="forms" | // Specifies the set of editing restrictions which shall be enforced on a given WordprocessingML document | ||||||||||
w:enforcement="1" | // Specifies if the document protection settings shall be enforced for a given WordprocessingML document | ||||||||||
w:cryptProviderType="rsaFull" | // Specifies the type of cryptographic provider to be used | ||||||||||
w:cryptAlgorithmClass="hash" | // Specifies the class of cryptographic algorithm used by this protection | ||||||||||
w:cryptAlgorithmType="typeAny" | // Specifies the type of cryptographic algorithm used by this protection | ||||||||||
w:cryptAlgorithmSid="4" | // Specifies the specific cryptographic hashing algorithm which shall be used along with the salt | ||||||||||
// attribute and user-supplied password in order to compute a hash value for comparison. | |||||||||||
w:cryptSpinCount="50000" | // Specifies the number of times the hashing function shall be iteratively run | ||||||||||
w:hash="0AMSgIVdSif6F5unNC/Lk3rBvr4=" | // Specifies the hash value for the password stored with this document | ||||||||||
w:salt="m3sJnUyPgf0hUjz+U1Sdxg==" | // Specifies the salt which was prepended to the user-supplied password before it was hashed using the | ||||||||||
// hashing algorithm | |||||||||||
/> |
You can either change w:enforcement value to 0 or remove the tag entirely.
references: