强制其他应用程序从java进程中读取文件

时间:2016-04-17 12:19:01

标签: java encryption inputstream

我实际上不确定是否甚至可以执行这样的操作:强制其他应用程序从Java进程读取文件,该文件返回所需的字节而不是从磁盘读取文件,所以首先这些信息可以提供帮助。

您也可以忽略强制的想法!我可以从我的java应用程序中打开其他应用程序,例如 Adob​​e Acrobat Reader 并将字节插入其中而不是单独打开它并用它读取pdf文件吗?

如果有可能,有人可以解释一下吗?我在互联网上搜索太多,但没有找到答案。

另外你可能想知道,我的想法是解密内存中的加密文件,让其他应用程序使用我自己的应用程序中的解密字节,而不是从磁盘读取解密文件(可以恢复!)

2 个答案:

答案 0 :(得分:1)

一个有趣的概念,但我担心答案是否定的。这会打开一大堆蠕虫,你提供给其他应用程序的流实际上并不是磁盘上的文件,而是其他应用程序所假设的。即使你以某种方式将原始数据作为其他应用程序可以读取的内容传递(尽管通常你只能将路径传递给文件而应用程序会自己打开它),会发生什么如果该应用程序试图写入它?它必须修改Java应用程序的内存。我相信你可以看到它的含义。

可能这样做的一种方法是创建一个由操作系统挂载的加密卷(例如TrueCrypt所做的),并将您的数据作为文件放在那里,以便其他应用程序可以只处理您的流文件。通过这种方式,您可以让另一个应用程序完全忘记您只是将它呈现为流的事实。您的应用程序将被通知已装载卷或文件上的任何更改,并可以采取相应措施。但这一切都远非微不足道。

答案 1 :(得分:0)

在我看来,让你的解密数据放在硬盘上,然后使用jDelete粉碎数据,或Turbo Shredder可以做你想要的,而不会出现反病毒问题。