J3r*_*myK 89 .net c# license-key
如何为C#应用程序创建产品密钥?
我需要创建一个每年更新的产品(或许可证)密钥.另外,我需要为试用版创建一个.
有关:
fra*_*yer 81
您可以执行类似创建包含要对应用程序进行身份验证的数据的记录的操作.这可能包括您想要的任何内容 - 例如,要启用的程序功能,到期日期,用户名称(如果您想将其绑定到用户).然后使用一些加密算法用固定密钥加密或加密它.然后你只需在你的程序中验证它.分发许可文件(在Windows上)的一种方法是将其作为更新注册表的文件提供(保存用户必须键入它).
但要注意虚假的安全感 - 迟早有人会简单地修补程序以跳过该检查,并分发修补版本.或者,他们会找出一张能够通过所有检查并分发,或者回溯时钟等的钥匙.无论你制定计划的方式有多复杂,你为此做的任何事情最终都会通过默默无闻来保证安全,而且他们总会能够做到这一点.即使他们不能有人会,并将分发黑客版本.即使您提供加密狗也是如此 - 如果有人愿意,他们也可以修补支票.对您的代码进行数字签名将无济于事,他们可以删除该签名或将其重新签名.
您可以通过使用防止程序在调试器中运行等技术来使问题复杂化,但即使这不是防弹.因此,您应该让一个诚实的用户不会忘记付费.同样要非常小心,你的计划不会对付费用户产生任何影响 - 最好是为你的付费客户提供一些剽窃副本,而不是能够使用他们支付的费用.
另一种选择是进行在线检查 - 只需向用户提供唯一的ID,并在线检查该ID应具备的功能,并将其缓存一段时间.尽管如此,所有相同的警告都适用 - 人们可以绕过这样的事情.
还要考虑必须与忘记密钥的用户打交道的支持费用等.
编辑:我只是想补充一点,不要在此投入太多时间,或者认为你的复杂计划会有所不同和不可摧毁.它不会,也不会只要人们控制程序运行的硬件和操作系统.开发人员一直试图为此提出更复杂的方案,认为如果他们为它开发自己的系统,那么它将只为他们所知,因此"更安全".但它确实是编程等同于尝试构建永动机.:-)
Spi*_*eah 16
你信任谁?
我一直认为这个领域太重要了,不能信任第三方来管理应用程序的运行时安全性.一旦该组件针对一个应用程序被破解,它就会被破解以用于所有应用程序.一旦他们在几年前使用3ds Max的第三方许可证解决方案,就会在五分钟内发生Discreet ......好时光!
说真的,考虑自己动手来完全控制你的算法.如果您这样做,请考虑使用密钥中的组件:
然后校验掉他们的地狱并添加你想要的任何(可逆)加密,使其更难破解.
要制作试用许可证密钥,只需为上述值设置值,即转换为"试用模式".
而且由于现在这可能是您的应用程序/公司中最重要的代码,而不是混淆,而是考虑将解密例程放在本机DLL文件中并简单地P/Invoke到它.
我曾为之工作过的几家公司采用了广义的方法,取得了巨大的成功.或许产品不值得破解;)
Kin*_*xit 11
如果您询问可以输入的密钥,例如Windows产品密钥,则它们基于某些检查.如果您正在谈论必须复制粘贴的密钥,那么它们基于数字签名(私钥加密).
一个简单的产品关键逻辑可以首先说产品密钥由四个5位组组成,abcde-fghij-kljmo-pqrst然后继续指定内部关系,如f + k + p应该等于a,意味着2的第一个数字,3和4组应该总计a.这意味着8xxxx-2xxxx-4xxxx-2xxxx有效,因此是8xxxx-1xxxx-0xxxx-7xxxx.当然,也会有其他关系,包括复杂的关系,如果第一组的第二个数字是奇数,那么最后一个组的最后一个数字也应该是奇数.这样,产品密钥的生成器和产品密钥的验证将简单地检查它是否匹配所有规则.
加密通常是关于使用私钥(==数字签名)加密并转换为Base64的许可证的信息字符串.公钥随应用程序一起分发.当Base64字符串到达时,它由公钥验证(==解密),如果发现有效,则激活产品.
无论是微不足道还是难以破解,我都不确定它真的会带来很大的不同.
您的应用程序被破解的可能性与其有用性成正比,而不是产品密钥处理的强度.
就个人而言,我认为有两类用户.付钱的人.那些没有的人.即使是最微不足道的保护,这样做也可能会这样做.那些不这样做的人会等待裂缝或寻找其他地方.无论哪种方式,它都不会让你获得更多的钱.
我不得不承认我会做一些相当疯狂的事情.
当他们找到并删除LicenseCheck时,DLL启动分段错误时会有什么乐趣.
还有Microsoft软件许可和保护(SLP)服务选项.读完之后我真的希望我能用它.
我非常喜欢根据许可证阻止部分代码的想法.热门的东西,最安全的.NET.有趣的阅读,即使你不使用它!
Microsoft®软件许可和保护(SLP)服务是一种软件激活服务,可使独立软件供应商(ISV)为其客户采用灵活的许可条款.Microsoft SLP Services采用独特的保护方法,有助于保护您的应用程序和许可信息,从而使您能够更快地进入市场,同时提高客户合规性.
注意:这是我发布带有敏感代码的产品的唯一方法(例如有价值的算法).
| 归档时间: |
|
| 查看次数: |
124680 次 |
| 最近记录: |