Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 你能把文件中的字节流到任何程序中吗?_Java_File_Encryption - Fatal编程技术网

Java 你能把文件中的字节流到任何程序中吗?

Java 你能把文件中的字节流到任何程序中吗?,java,file,encryption,Java,File,Encryption,所以我有这个想法,但我不知道这是否可能 以下是想法: 例如,我将使用.doc文件和word。我想加密这个 .doc文件转换为.encrypt文件。然后在我的程序中解密文件并强制word加载文件对象 或者我需要解密文件,将其写入HDD,然后打开/编辑文件并保存,然后再次加密 还是有其他我没有想到的方法 希望你们中的一些人能帮上忙:)你们可以,但要实现这一目标还有一些工作要做。Microsoft对象链接和嵌入(OLE)和通用对象模型(COM)提供了您所需的一切。顺便说一句,它不会移植到任何其他体系结

所以我有这个想法,但我不知道这是否可能

以下是想法:

例如,我将使用.doc文件和word。我想加密这个 .doc文件转换为.encrypt文件。然后在我的程序中解密文件并强制word加载文件对象

或者我需要解密文件,将其写入HDD,然后打开/编辑文件并保存,然后再次加密

还是有其他我没有想到的方法


希望你们中的一些人能帮上忙:)

你们可以,但要实现这一目标还有一些工作要做。Microsoft对象链接和嵌入(OLE)和通用对象模型(COM)提供了您所需的一切。顺便说一句,它不会移植到任何其他体系结构,但您可以在Windows上构建它。用代码示例进行详细解释对于SO答案来说太大了,所以我只给出一些提示

这里您需要的是构建一个COM客户机,该客户机将能够支持作为COM服务器的Word对象。您的客户机应该能够通过自定义名字对象提供加密存储。它应该可以工作,因为这或多或少是您可以在Excel工作表中包含Word对象的方式

如果您在COM编程方面没有或几乎没有经验,请不要直接尝试。如果您不了解Microsoft高级模板库,请不要尝试这两种方法。IMHO的要求是:

  • MSCV环境及其完整文档
  • COM客户端和服务器示例-如果尚未构建,请遵循MSVC文档中的教程
  • 嵌入对象的持久性示例-idem后续教程
一旦您拥有了所有这些,您应该能够指定和构建包含Word对象并为其提供加密存储的专用OLE客户机。祝你好运



但不要指望这比通过Word处理文件并在完成后再次加密要安全得多。好的,它将不受脚本kiddies寻找.doc或.docx文件的影响,但一旦文档加载到Word for edition中,Word程序就可以被一段邪恶的代码操纵(通过自动化或直接发送键盘消息)。从安全角度或角度来看,如果您的计算机中存在您无法信任的内容,则它将不再(仅)属于您。

解密、存储到光盘、exec word,路径指向该文件。当将其加载到应用程序中时,它仍然易受攻击,特别是当程序创建自动备份/更改控件或数据被交换到磁盘时。@AlexK:大多数应用程序都需要,但Microsoft的应用程序不需要:您可以在excel文档中嵌入word文档,两者都有一个单独的存储,每个都由其适当的应用程序处理。大多数应用程序都无法接受字节流。您必须解密字节,将它们写入文件系统,然后让Word打开该文件。不管你做什么,它在某个时候仍然是未加密的,因为你无法控制其他程序如何处理文件/字节。听起来有点像@ManoDestra:COM-OLE,它不允许将对象存储在自己的文件中,而是允许其容器为其持久性提供名字对象。这可能是一个X-Y问题,但它有一个直接的解决方案。感谢这些细节,我将研究它!有一个问题,对我来说,这似乎只适用于microsoft程序?我正在寻找的唯一解决方案是确保文件在解密时尽可能安全。其中一个步骤是不将它们存储在硬盘上。