如何最好地混淆我的C#产品许可证验证代码?

如何最好地混淆我的C#产品许可证验证代码?,c#,.net,C#,.net,如何最好地混淆我的C#.net应用程序产品密钥验证代码 把它放在一个“内部密封的类名{}”中就足够了吗?或者我还需要做更多的工作吗 谢谢 访问修饰符,如internal和sealed与混淆或代码安全性无关,它们只是告诉其他类如何与它们交互(或不交互) 归根结底,你无法阻止盗版。一个人创造的任何东西都可能被另一个人打破。如果使用右上角的搜索机制,可以找到大量关于产品密钥、保护软件安全等方面的问题。所有答案都包含了一些基本的想法,任何有点常识的人都会告诉你: 只需在反盗版措施上投入足够的努力,使破解

如何最好地混淆我的C#.net应用程序产品密钥验证代码

把它放在一个“内部密封的类名{}”中就足够了吗?或者我还需要做更多的工作吗


谢谢

访问修饰符,如
internal
sealed
与混淆或代码安全性无关,它们只是告诉其他类如何与它们交互(或不交互)

归根结底,你无法阻止盗版。一个人创造的任何东西都可能被另一个人打破。如果使用右上角的搜索机制,可以找到大量关于产品密钥、保护软件安全等方面的问题。所有答案都包含了一些基本的想法,任何有点常识的人都会告诉你:

  • 只需在反盗版措施上投入足够的努力,使破解软件比破解信用卡更不方便。如果真的很难做到这一点,你的客户群收费太高了
  • 如果你专注于与客户建立积极的关系,而不是假设他们是罪犯,他们会更愿意给你钱
  • 大多数客户——个人,尤其是公司——对拆开你们的装配并试图找出不给你们钱的办法不感兴趣。对于个人来说,他们无论如何都不会付钱,这样你就不会失去销售机会;而且,公司也不会为了某些软件许可证的成本而冒着法律问题带来巨额现金的风险

  • 研究公钥/私钥和椭圆密钥加密,您会找到保护密钥算法的方法,但它只会防止破解密钥,而不会绕过密钥。

    是正确的,
    内部密封类
    不会隐藏任何内容。使用单向加密哈希(例如)来保护密码和密钥。

    < P>我同意Rex M,你应该考虑使用非对称加密算法,如椭圆曲线密码术来避免密钥。如果你对商业解决方案感兴趣,那么试试吧——它使用椭圆曲线,并且有一些有用的功能,比如产品信息和过期数据嵌入到生成的串行密钥中。

    Rex M说的是真的。使用公钥/私钥加密方案生成密钥。用Dotfuscator之类的东西混淆代码。但最终,人们仍然可以通过修改可执行文件中的一些条件跳转来破解它。我同意你的第三点,但是一个个人/公司只购买一个许可证,并在多台机器上使用它,因为这需要一些保护,对吗?或者任何PGP系统,真的。将公钥放入应用程序中,并让应用程序开发人员(或公司)持有私钥。