代码之家  ›  专栏  ›  技术社区  ›  epitka

传输或序列化程序集

  •  1
  • epitka  · 技术社区  · 15 年前

    我需要一种方法将编译后的程序集从客户端传输到服务器,并能够将其存储在数据库或文件中,以便能够在“to”端获取这些字节并重新加载程序集。有办法吗。为了澄清这一点,我有一个winforms应用程序,它将生成代码并基于一些元数据编译它。现在我需要能够将它传输到一个网站并以某种方式存储,但我不想要一个dll(因为它可以被反编译)。我会有一个“服务器”程序在另一边,这将载入内存。我可以只传输加密的源代码,但我想我可以只传输编译的程序集。

    更多信息:即使在“from”端,也不会生成文件,而是在内存中编译,因此不会创建物理dll。

    4 回复  |  直到 15 年前
        1
  •  2
  •   invert    15 年前

    听起来你想 serialize your compiled assembly ,从/到内存,并将其传输到服务器,然后在服务器中将其再次反序列化为程序集。

        2
  •  1
  •   cjk    15 年前

    传输加密的DLL怎么样?

        3
  •  1
  •   Jimmie Clark    14 年前

    我建议您使用二进制序列化程序并将该流管道化为可设置为特定加密模型的加密流。然后获取输出流并将其转储到您的位置。在进程的运行端,解密并反序列化它。如果需要,如果程序集足够大,也可以使用DeflateStream,这将节省一些空间。

    希望这有帮助。如果你想要例子,请告诉我。

        4
  •  1
  •   Tim Cooper    13 年前

    您可以使用公钥加密。

    客户端将使用公钥加密组成程序集的字节。这些字节将被存储在数据库中——对于不在私钥会话中的任何人来说都是完全无用的。然后,服务器可以读入这些字节,用私钥解密它们,并从解密的字节流重新构造程序集。

    由于您使用的是公钥加密,即使客户端受到了危害,您的密钥(私钥)也是安全的,因为它存储在服务器上。

    为了进一步了解这项技术,我建议阅读 this .