我正在使用 OpenXML SDK v2 以编程方式创建 DOCX 文件。文档的要求之一是它受到保护以避免编辑。
这是使用 DocumentProtection 对象完成的,例如:
new DocumentProtection
{
Edit = DocumentProtectionValues.ReadOnly,
Enforcement = BooleanValues.One,
CryptographicProviderType = CryptProviderValues.RsaFull,
CryptographicAlgorithmClass = CryptAlgorithmClassValues.Hash,
CryptographicAlgorithmType = CryptAlgorithmValues.TypeAny,
CryptographicAlgorithmSid = 4,
CryptographicSpinCount = 50000,
Hash = hash,
Salt = salt
}
这在 Word 2007 中打开文档时效果很好,但在带有兼容包的 Word 2003 中打开时,无需输入密码即可删除保护。
在线阅读这似乎是“设计使然”或至少是预期的。
在 Word 2003 中查看时,是否有人对保持密码保护完好无损有任何聪明的想法?