如何最好地混淆我的C#.net app产品密钥验证码?
将它放在“INTERNAL SEALED CLASS CLASSNAME {}中是否足够了”还是我需要做更多?
谢谢!
答案 0 :(得分:18)
internal
和sealed
等访问修饰符与模糊处理或代码安全性无关,它们只是告诉其他类如何与它们进行交互(或不交互)。
在一天结束时,您无法阻止盗版。一个人创造的任何东西都可以被另一个人打破。 SO上有很多问题涉及产品密钥,保证软件安全等等,如果您使用右上角的搜索机制,可以找到这些问题。所有的答案都涵盖了一些基本的想法,任何有意义的人都会告诉你:
研究公钥/私钥和椭圆密钥加密,您将找到保护密钥算法的方法,但它只会阻止破解密钥,而不会绕过它。
答案 1 :(得分:2)
我同意Rex M,你应该考虑使用非对称加密算法,如椭圆曲线密码术来避免密钥。如果您对商业解决方案感兴趣,请尝试Ellipter - 它使用椭圆曲线并具有一些有用的功能,如产品信息和过期数据嵌入到生成的串行密钥中。
答案 2 :(得分:0)
Rex是正确的,internal sealed class
不会隐藏任何内容。使用单向加密哈希(例如MD5CryptoServiceProvider)来保护密码和密钥。