Ms word MS Word-文件保护

Ms word MS Word-文件保护,ms-word,openssl,docx,Ms Word,Openssl,Docx,我生成docx文件作为工具的输出。我想在docx中添加文档保护。 根据ECMA-376规范,我想使用SHA-1加密。“测试”密码和“foo”salt的示例为: w:散列由以下命令生成:$echo-n footest | openssl dgst-binary-sha1 | openssl base64 w:salt是由以下命令生成的:$echo-nfoo | base64 此示例是唯一能够强制MS Word 2010向用户请求密码的输出。但它不接受“test”作为密码。我做错了什么 还有一件奇怪

我生成docx文件作为工具的输出。我想在docx中添加文档保护。 根据ECMA-376规范,我想使用SHA-1加密。“测试”密码和“foo”salt的示例为:

w:散列由以下命令生成:
$echo-n footest | openssl dgst-binary-sha1 | openssl base64

w:salt是由以下命令生成的:
$echo-nfoo | base64

此示例是唯一能够强制MS Word 2010向用户请求密码的输出。但它不接受“test”作为密码。我做错了什么

还有一件奇怪的事。若省略了w:cryptSpinCount或w:salt,MS Word甚至不会要求输入密码。这似乎是一个bug,因为规范中说这些属性是可选的

我还尝试使用w:cryptSpinCount=“0”,但没有任何效果

谢谢你的帮助,
Pavel

我不知道,但这篇文章对你有帮助吗?辛迪,非常感谢你。这篇文章中的代码工作得很好。很高兴它能帮上忙:-)我对这个主题理解不够,无法将博客文章的内容总结成一个答案,也无法与链接一起使用。通过一个代码示例,您能做到这一点吗?您可以在StackOverflow上回答自己的问题,并将其标记为“答案”。这将对将来遇到同样问题的其他人有很大帮助。 <w:documentProtection w:enforcement="1" w:edit="forms" w:cryptProviderType="rsaFull" w:cryptAlgorithmClass="hash" w:cryptAlgorithmType="typeAny" w:cryptAlgorithmSid="4" w:cryptSpinCount="1" w:hash="uPlhSA7DpYSaAKL6AjGwy2MQfHs=" w:salt="Zm9v">