本页内容
设置密码
PDF 权限模块通过提供加密、文档权限、解密和密码移除功能来确保文档安全性,允许用户对文档进行安全的控制和管理。
加密
加密功能由两部分组成:用户密码和所有者密码。
- 用户密码 用于打开文档,确保只有授权用户可以访问内容。当设置用户密码时,通常会限制某些文档权限,例如修改、复制或打印。
- 所有者密码 不仅可以打开文档,还可以解锁所有受限权限,允许用户修改、复制或打印文档。
这种双重密码系统旨在提供更加灵活且安全的文档访问与管理方式。
ComPDFKit 提供多种加密算法与权限设置。根据需求,您可以选择适当的算法并配置自定义权限以保护文档。
加密步骤如下:
- 设置不同的用户密码和所有者密码。
- 创建权限信息类。
- 指定加密算法。
- 使用用户密码、所有者密码、权限信息和指定的算法加密文档。
- 保存文档。
以下示例展示了如何加密文档:
dart
CPDFReaderWidgetController? _controller;
@override
Widget build(BuildContext context) {
return Scaffold(
resizeToAvoidBottomInset: false,
appBar: AppBar(),
body: Column(children: [
TextButton(onPressed: () async {
// 设置密码
bool setPasswordResult = await _controller.document.setPassword(
userPassword: '1234',
ownerPassword: '12345',
allowsPrinting: false,
allowsCopying: false,
encryptAlgo: CPDFDocumentEncryptAlgo.aes256);
debugPrint('ComPDFKit-Flutter: setPasswordResult:$setPasswordResult');
// 保存 PDF
await _controller.document.save();
}, child: const Text('加密 PDF')),
Expanded(child: CPDFReaderWidget(
document: widget.documentPath,
configuration: CPDFConfiguration(),
onCreated: (controller) {
setState(() {
_controller = controller;
});
},
))
],));
}
不同加密算法
加密算法 | 描述 | 枚举值 |
---|---|---|
No Encrypt Algo | 不进行加密 | CPDFDocumentEncryptAlgo.noEncryptAlgo |
RC4 | 基于密钥的异或加密明文 | CPDFDocumentEncryptAlgo.rc4 |
AES-128 | 使用 128 位密钥的 AES 加密 | CPDFDocumentEncryptAlgo.aes128 |
AES-256 | 使用 256 位密钥的 AES 加密 | CPDFDocumentEncryptAlgo.aes256 |