Java 在这种情况下,加密可以成为解决方案吗

Java 在这种情况下,加密可以成为解决方案吗,java,encryption,documentum,Java,Encryption,Documentum,我正在使用EMC Documentum内容管理系统。我正试图通过自己的API自动化一些文件导入(将文件移动到CMS存储库)。(不要因为下一句话而惊慌失措,只要读一下,因为它的EMC自己的API您可能不知道)为此,我必须首先创建一个类型为IDfFile的对象,然后将该对象传递给执行导入的idfmortnode.add() 我要做的是在运行时从一台服务器获取文件,并立即执行导入操作我想在内存中完成所有这些操作,而不将获取的文件保存在磁盘上-因为这些文件是机密的 但是问题是,IdfFile(strin

我正在使用EMC Documentum内容管理系统。我正试图通过自己的API自动化一些文件导入(将文件移动到CMS存储库)。(不要因为下一句话而惊慌失措,只要读一下,因为它的EMC自己的API您可能不知道)为此,我必须首先创建一个类型为
IDfFile
的对象,然后将该对象传递给执行导入的
idfmortnode.add()

我要做的是在运行时从一台服务器获取文件,并立即执行导入操作我想在内存中完成所有这些操作,而不将获取的文件保存在磁盘上-因为这些文件是机密的

但是问题是,
IdfFile(string)
采用要导入的文件的绝对路径。因此,文件必须实际存在于磁盘上,即使在导入后删除文件,最终也会在磁盘上留下文件的痕迹。我在猜测它是否可以接受
对象,但没有这样的重载


因此,我想知道我是否可以在保存到磁盘或任何其他方式之前对文件进行加密。或者我要求EMC人员提供合适的API方法。

如果这些文件是真正机密的,而且您真的想通过这么多麻烦来保存它们,那么您首先应该对它们进行加密

在磁盘上留下痕迹的文件应该是您最不担心的,您需要对磁盘进行物理访问,以便对其执行深入调查,以查明这些文件是什么。更现实的问题是攻击者获得对服务器的访问权并读取这样的文件

但还是要回答你的问题:

    加密可以解决很多问题,但总是要考虑它是否值得。
  • 当然,您可以随时向“EMC人员”寻求解决方案,特别是如果您有商业支持的话

如果这些文件是真正的机密文件,并且你真的想通过这么多麻烦来保存它们,那么你应该首先对它们进行加密

在磁盘上留下痕迹的文件应该是您最不担心的,您需要对磁盘进行物理访问,以便对其执行深入调查,以查明这些文件是什么。更现实的问题是攻击者获得对服务器的访问权并读取这样的文件

但还是要回答你的问题:

    加密可以解决很多问题,但总是要考虑它是否值得。
  • 当然,您可以随时向“EMC人员”寻求解决方案,特别是如果您有商业支持的话

    • 要在磁盘上留下文件的痕迹,很容易:加密磁盘。采取像Truecrypt这样的解决方案,加密整个磁盘,装载它,运行您的程序。保存在磁盘中的所有内容都将被加密,但它对您的程序是透明的(它将只对设备进行读写,并且不必担心文件是否加密存储)

      问题是:

      • 如果有人可以在你的电脑运行时访问它,他可以读取文件

      • 如果你的电脑被黑客入侵,并且可以从外部访问,他可以读取文件


        • 要在磁盘上留下文件的痕迹,很容易:加密磁盘。采取像Truecrypt这样的解决方案,加密整个磁盘,装载它,运行您的程序。保存在磁盘中的所有内容都将被加密,但它对您的程序是透明的(它将只对设备进行读写,并且不必担心文件是否加密存储)

          问题是:

          • 如果有人可以在你的电脑运行时访问它,他可以读取文件

          • 如果你的电脑被黑客入侵,并且可以从外部访问,他可以读取文件


          执行此操作的方法是使用
          IDfSysObject.setContent()
          方法。这将是更多的代码,因为您不能使用导入操作的便利性,但它应该允许您保存流。可能是这样的(但您可能已经从某个地方获得了流):


          来源:

          执行此操作的方法是使用
          IDfSysObject.setContent()
          方法。这将是更多的代码,因为您不能使用导入操作的便利性,但它应该允许您保存流。可能是这样的(但您可能已经从某个地方获得了流):


          来源:

          如果您可以访问内存中的密钥,并且您要隐藏文件的人都无法访问该内存,则将文件加密到光盘是可行的。再次阅读后,我发现您没有打开该文件,并且一些库代码正在打开。在读取数据时,您需要解密数据。如何不使用
          idf文件
          idInputStreamContent
          传递到
          IDfImportNode.add()
          。这样您就不必将其保存到光盘。(我不知道你使用的系统,但首先想到的是看文档)。如果你可以访问内存中的密钥,并且没有人可以访问该内存,那么将文件加密到光盘是可行的。再次阅读后,我发现您没有打开该文件,并且一些库代码正在打开。在读取数据时,您需要解密数据。如何不使用
          idf文件
          idInputStreamContent
          传递到
          IDfImportNode.add()
          。这样您就不必将其保存到光盘。(我不知道你使用的是什么系统,但首先想到的是那些文档)。是的,这似乎很准确,但现在我意识到,我使用EWS Java API获取的实际上是交换邮件的机密文件是由EWS API本身定义的
          EmailMessage
          类型,并且不可序列化,因此,我无法将它们转换为
          字节
          
          File pdfInput = new File("C:\\Rupinder\\MyFile.txt");
          byte[] outBytes = new byte[(int)pdfInput.length()];
          
          FileInputStream fileInputStream = new FileInputStream(pdfInput);
          fileInputStream.read(outBytes);
          
          ByteArrayOutputStream out = new ByteArrayOutputStream();
          out.write(outBytes);
          
          IDfSysObject sysObj = (IDfSysObject)session.newObject("c_pdf");
          sysObj.setObjectName("testDoc");
          sysObj.setContentType("crtext");
          sysObj.setTitle("import operation");
          sysObj.link("/Temp/Source Folder"); 
          sysObj.setContent(out);
          sysObj.save();