目标是打开现有的. docx文档并用密码保存。我使用ApachePOI库来实现。下面的代码工作正常,使文档加密并受密码保护。
但是在创建文件后,我可以用LibreOffice打开它,但不能用MS Word或OpenOffice Writer打开它。
文件似乎没有内容类型部分,因为OpenOffice问我文件的过滤器。但是当我选择“微软Word 2007 XML”时,我从OpenOffice得到了“常见输入输出错误”
我能请你们帮我吗,伙计们?附注:我用Java8和POI 3.17
static boolean encryptOne(String documentPath, String password) {
try {
POIFSFileSystem fs = new POIFSFileSystem();
EncryptionInfo info = new EncryptionInfo(EncryptionMode.agile);
Encryptor encryptor = info.getEncryptor();
encryptor.confirmPassword(password);
OPCPackage opc = OPCPackage.open(new File(documentPath), PackageAccess.READ_WRITE);
opc.save(encryptor.getDataStream(fs));
opc.close();
FileOutputStream fos = new FileOutputStream(documentPath);
fs.writeFilesystem(fos);
fos.close();
System.out.println("Document successfully encrypted");
return true;
} catch (IOException | GeneralSecurityException | InvalidFormatException e) {
ExceptionPrinter.printOutStream(e);
return false;
}
}
所以,我通过改变EncryptionMode解决了这个问题:
// EncryptionInfo info = new EncryptionInfo(EncryptionMode.agile);
EncryptionInfo info = new EncryptionInfo(EncryptionMode.standard);
我发现一些免费(免费)版本的MS Word不支持ECMA-376的信息。敏捷加密。所以,我将加密模式改为ECMA-376。标准,对我来说很管用。我不确定这是不是真的,但这对我很有帮助。
希望这将帮助某人。
谢谢
问题内容: 我正在尝试在excel中打开一个受密码保护的文件,而无需任何用户交互。我在线搜索,发现此代码使用win32com.client运行此程序时,仍然提示输入密码… 问题答案: 我认为命名参数在这种情况下不起作用。因此,您必须执行以下操作: 有关Workbooks.Open方法的详细信息,请参见http://msdn.microsoft.com/zh- cn/library/office/f
OAuth 2.0 资源所有者密码授权 允许一个客户端发送用户名和密码到令牌服务并获得一个表示该用户访问令牌。 (OAuth 2.0) 规范 建议仅对“受信任”的应用程序使用资源所有者密码授权。一般来说,当你想要验证一个用户并请求访问令牌的时候,使用交互式 OpenID Connect 流通常会更好。 不过,这个授权类型允许我们在 IdentityServer 快速入门中引入 用户 的概念,这是我
问题内容: 发送带有用户名和密码的POST请求后,如何使用Jsoup保存cookie?还是我必须先将它们提供给连接对象然后保存? 问题答案: 假设HTML表单如下所示: 您可以发布它并获取cookie,如下所示: 您可以按以下要求将Cookie传递回去: 或者,如果您知道单个Cookie的名称,则:
本文向大家介绍svn 使用受密码保护的存储库,包括了svn 使用受密码保护的存储库的使用技巧和注意事项,需要的朋友参考一下 示例 可以配置Subversion存储库,以便某些用户只能访问某些内容或命令。为了访问此受限内容,您将需要指定用户名和密码。 您的用户名和密码可以直接在命令中指定: 不幸的是,这会使您的密码在控制台上以纯文本形式出现。为了避免这种可能的安全问题,请指定用户名而不是密码。这样做
我一直在尝试使用fpdf和fpdi向受密码保护的pdf(仅写保护)添加水印。 它在普通PDF上工作,但当它受密码保护时,会出现以下错误: FPDF错误:此文档(upd/509ae4da4044df9a43e03e09b4cf772b0.pdf)可能使用了FPDI附带的免费解析器不支持的压缩技术。 在文档上写是不可能的,这是有道理的,但是在搜索时,我看到类似的问题得到了解决。 感谢先进。