2009-02-02 41 views

回答

17

访问修饰符如internalsealed与模糊处理或代码安全性没有任何关系,它们只是告诉其他类如何与它们交互(或不交互)。

在一天结束时,您无法做任何事情来防止盗版。一个人创造的任何东西都可以被另一个人打破。如果您在右上角使用搜索机制,那么在SO上有许多问题需要处理产品密钥,保持软件安全等。所有的答案介绍几个基本的想法,任何人只要有一点点感觉会告诉你:

  1. 只有投入足够的精力投入到你的反盗版措施,使破解软件稍高于打破了信用卡不太方便。如果这真的很难做到,那么对于您的客户群来说,收费太多了。
  2. 如果您专注于与客户建立积极关系,而不是假设他们是罪犯,他们会更愿意为您提供资金。
  3. 大多数客户 - 个人,特别是公司 - 没有兴趣破解组装,并试图找出如何摆脱不付钱。对于个人而言,他们不会为此付出代价,所以你不会失去一次销售;并且公司不会为一些软件许可证的成本承担法律问题的风险。

研究公钥/私钥和椭圆密钥加密,你会找到办法,以确保您的密钥算法,但它只会阻止开裂关键,而不是绕过它。

+0

Rex M说的是真的。使用公钥/私钥加密方案来生成密钥。用Dotfuscator之类的东西来混淆你的代码。但最终,人们仍然可以通过修改可执行文件中的某些条件跳转来破解它。 – mmcdole 2009-02-02 01:47:29

+1

我同意你的第三点,但是一个人/公司只购买一个许可证并在多台机器上使用它,对于这种保护是必要的吗? – 2010-07-05 07:35:07

0

Rex是正确的,internal sealed class不会隐藏任何东西。使用单向加密散列(例如MD5CryptoServiceProvider)来保护密码和密钥。

2

我同意雷克斯M,你应该考虑使用非对称加密算法,如椭圆曲线密码学,以避免keygens。如果您对商业解决方案感兴趣,请尝试Ellipter - 它使用椭圆曲线,并具有一些有用的功能,如产品信息和到期数据嵌入到生成的序列密钥中。