.NET的.NET混淆:我如何保护我的代码?

我正在与一家小公司探讨合作关系。 该公司正在寻找一种可以提高利润的算法,我有一些可以帮助他们的原型软件。 我的软件的核心是非常机密的,如果公司掌握它,那么他们肯定不需要我。 我肯定会和他们签订合同,我会得到法律保护,但我仍然希望在他们之间加上尽可能多的保护层和我的“商业秘密”。

我可能必须与他们的开发人员密切合作,以自动化我的算法并将其集成到他们的系统中,但我想在DLL中提供核心function,这样我就可以保护我的“商业秘密”,但仍然有能力使用他们的开发人员。 鉴于我的情况,混淆是否值得? 还有其他合理的选择吗?

我不知道这是否适合您,但您可以考虑使用WCF或Xml-rpc或REST等提供算法作为Web服务。

当然,使用HTTPS 。

这样他们就可以使用算法,但他们永远无法获得你的代码。

只要算法不需要太多往返或大量数据被传输,就应该可以工作。 也就是说,只要该算法不需要实时使用且响应度<100ms左右。

选项1:Dotfuscator或类似产品

http://www.preemptive.com/products/dotfuscator/overview

选项2:对商业秘密所涵盖的部分使用C或C ++。

混淆将为您提供更多的IP保护意识。 检查这个免费工具,它可能是一个很好的起点http://www.ntcore.com/phoenix.php

我认为真正保护您的知识产权的是合同和法律。 确保在参与开始时明确定义,并制定协议以保护您的利益。