Skip to main content

Module crypto

Module crypto 

Source
Expand description

加密与保护模块:修改密码保护 + ECMA-376 Agile Encryption。

本模块提供两种级别的文档保护:

  1. 修改密码保护(modifyVerifier):打开时可只读浏览,修改需密码。 对标 PowerPoint “保护演示文稿 → 限制访问” 功能。 算法遵循 MS-OFFCRYPTO §2.4.2.4(SHA-512 + salt + spinCount)。

  2. 文件加密(ECMA-376 Agile Encryption):打开文件即需密码。 对标 PowerPoint “保护演示文稿 → 用密码进行加密” 功能。 使用 AES-256-CBC + SHA-512 密钥派生,符合现代 Office 加密标准。 算法遵循 MS-OFFCRYPTO §2.3.4.11(Agile Encryption)。

§与 pypdf 的对应

Structs§

AgileEncryptionParams
Agile Encryption 参数。
ModifyProtection
修改密码保护参数。

Constants§

MODIFY_SPIN_COUNT
修改密码保护的哈希迭代次数。
SALT_LEN
salt 字节长度(16 字节 = 128 位,符合 MS-OFFCRYPTO 推荐)。

Functions§

aes_256_cbc_decrypt
AES-256-CBC 解密。
aes_256_cbc_encrypt
AES-256-CBC 加密。
compute_modify_hash
按 MS-OFFCRYPTO §2.4.2.4 计算 modifyVerifier 的哈希。
decrypt_package
解密加密的 ZIP 包。
encrypt_package
加密整个 ZIP 包(ECMA-376 Agile Encryption)。
generate_random_bytes
生成随机 salt/IV 字节。
is_encrypted_package
检查字节流是否为加密的 OOXML 文档。