iTextPdf setEncryption 没有权限

我用这样的密码加密pdf:


public static void main(String[] args) throws DocumentException, MalformedURLException, IOException {

    Document document = new Document();

    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("zrsz.pdf"));

    writer.setEncryption("ownerPass".getBytes(), "userPass".getBytes(), PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128);

        writer.createXmpMetadata();

        document.open();

        document.add(new Paragraph("This is create PDF with Password demo."));

    document.close();

    System.out.println("Done");

   }

但我找不到给这个setEncryption方法一个“无权限”参数的方法:


public void setEncryption(byte[] userPassword,

                          byte[] ownerPassword,

                          int permissions,

                          int encryptionType)

甚至有可能吗?我想将该文件的访问权限限制在最低限度。我只是用它来读取机密数据。


提前致谢 !


守着一只汪
浏览 434回答 1
1回答

犯罪嫌疑人X

根据手册,您可以使用文档所说的以下所有内容设置此文档的加密选项。userPassword 和 ownerPassword 可以为 null 或长度为零。在这种情况下,ownerPassword 被随机字符串替换。文档的打开权限可以是 AllowPrinting、AllowModifyContents、AllowCopy、AllowModifyAnnotations、AllowFillIn、AllowScreenReaders、AllowAssembly 和 AllowDegradedPrinting使用用户密码打开文档时允许上述所有操作。所以你有一个安全措施,只有输入有效凭据(密码)的用户才能操作它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java