使用 OpenXML SDK 2 保护文档

发布于 2024-08-02 03:35:42 字数 704 浏览 4 评论 0原文

我正在使用 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 中查看时,是否有人有任何巧妙的想法可以保持密码保护完好无损?

I am programmatically creating a DOCX file using OpenXML SDK v2. One of the requirements of the document is it be protected to avoid editing.

This is accomplished using the DocumentProtection object like:

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
}

This works beautifully when the document is opened in Word 2007, but when opened in Word 2003 with the compatibility pack the protection can be removed without entering a password.

Reading online this appears 'by design' or at least expected.

Does anyone have any clever ideas on keeping the password protection in-tact when viewed within Word 2003?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文