在 C# 窗口应用程序中要加入 License 授权才能使用的方法

问题描述

Hi,请问在C#窗口应用程序中要加入License授权才能使用,这一般有哪些方法?以及要注意些什么事项?请指点,谢谢.

解决方案

解决方案二:
加壳就行,别的都完蛋
解决方案三:
获取机器码然后将其加密,加密后的数据就是License一般用rsa加密你在软件中配置好公钥私钥你自己留着
解决方案四:
引用2楼laiyongxin的回复:

获取机器码然后将其加密,加密后的数据就是License一般用rsa加密你在软件中配置好公钥私钥你自己留着

不是很明白,如果没有私钥,我在程序中怎么验证用户得到的License文件或序列号??我又如何在程序中来解密?
解决方案五:
引用1楼liucqa的回复:

加壳就行,别的都完蛋

你说的加壳是什么意思 ? 如果我要在程序中验证License有没有某一个指定的功能,(例如:写功能,如果没有写功能的话,就不能使用某个模块),这加壳能做到吗?
解决方案六:
你不加壳,代码就是裸奔,有License也没用
解决方案七:
引用5楼liucqa的回复:

你不加壳,代码就是裸奔,有License也没用

可以说得详细一点吗? 加壳后就可以不用License吗?
解决方案八:
引用3楼u013510302的回复:

Quote: 引用2楼laiyongxin的回复:
获取机器码然后将其加密,加密后的数据就是License一般用rsa加密你在软件中配置好公钥私钥你自己留着

不是很明白,如果没有私钥,我在程序中怎么验证用户得到的License文件或序列号??我又如何在程序中来解密?

rsa加密你先去了解下.你只要保管好你的私钥就可以了,程序中只要用公钥就可以进行解密你用私钥加密过的数据,只要解密后的数据和机器码进行比对一下就能判断该机器是否通过验证了
解决方案九:
引用7楼laiyongxin的回复:

Quote: 引用3楼u013510302的回复:
Quote: 引用2楼laiyongxin的回复:
获取机器码然后将其加密,加密后的数据就是License一般用rsa加密你在软件中配置好公钥私钥你自己留着

不是很明白,如果没有私钥,我在程序中怎么验证用户得到的License文件或序列号??我又如何在程序中来解密?

rsa加密你先去了解下.你只要保管好你的私钥就可以了,程序中只要用公钥就可以进行解密你用私钥加密过的数据,只要解密后的数据和机器码进行比对一下就能判断该机器是否通过验证了

那公钥是不是硬写在程序里面?另外,如果这个私钥不需要用在解密,那这个私钥还有什么用??
解决方案十:
引用8楼u013510302的回复:

Quote: 引用7楼laiyongxin的回复:
Quote: 引用3楼u013510302的回复:
Quote: 引用2楼laiyongxin的回复:
获取机器码然后将其加密,加密后的数据就是License一般用rsa加密你在软件中配置好公钥私钥你自己留着

不是很明白,如果没有私钥,我在程序中怎么验证用户得到的License文件或序列号??我又如何在程序中来解密?

rsa加密你先去了解下.你只要保管好你的私钥就可以了,程序中只要用公钥就可以进行解密你用私钥加密过的数据,只要解密后的数据和机器码进行比对一下就能判断该机器是否通过验证了

那公钥是不是硬写在程序里面?另外,如果这个私钥不需要用在解密,那这个私钥还有什么用??

公钥可以硬写在程序里私钥用来加密用你先去google下rsa加密
解决方案十一:
引用9楼laiyongxin的回复:

Quote: 引用8楼u013510302的回复:
Quote: 引用7楼laiyongxin的回复:
Quote: 引用3楼u013510302的回复:
Quote: 引用2楼laiyongxin的回复:
获取机器码然后将其加密,加密后的数据就是License一般用rsa加密你在软件中配置好公钥私钥你自己留着

不是很明白,如果没有私钥,我在程序中怎么验证用户得到的License文件或序列号??我又如何在程序中来解密?

rsa加密你先去了解下.你只要保管好你的私钥就可以了,程序中只要用公钥就可以进行解密你用私钥加密过的数据,只要解密后的数据和机器码进行比对一下就能判断该机器是否通过验证了

那公钥是不是硬写在程序里面?另外,如果这个私钥不需要用在解密,那这个私钥还有什么用??

公钥可以硬写在程序里私钥用来加密用你先去google下rsa加密

我大概想明白其中的意思了,私钥应该是可以用来生成很多个License文件,这个理解是否准确?我稍后再googlersa,我还有一个问题想问清楚一些,关于上面所说的加壳,对License有帮助吗?用RSA是否不用加壳?还有如何防止加入了License后又给容易的把License限制去掉?这点应该用什么概念??
解决方案十二:
引用6楼u013510302的回复:

Quote: 引用5楼liucqa的回复:
你不加壳,代码就是裸奔,有License也没用

可以说得详细一点吗? 加壳后就可以不用License吗?

加壳就是加代码呀,代码里面加啥都行,具体工具好多,搜索.net加壳
解决方案十三:
使用现成的加密狗。加密狗主要做两件事情,一个是对程序加密(也就是所谓的加壳),一个是加密狗本身是硬件,具有唯一性和防复制性。这两者缺一不可,如果不加密,破解者很容易修改程序绕过验证机制。如果不使用加密狗,硬件特征很容易伪造。总之,采用现成的解决方案省时省心。
解决方案十四:
该回复于2014-01-21 22:24:12被版主删除
解决方案十五:
引用12楼caozhy的回复:

使用现成的加密狗。加密狗主要做两件事情,一个是对程序加密(也就是所谓的加壳),一个是加密狗本身是硬件,具有唯一性和防复制性。这两者缺一不可,如果不加密,破解者很容易修改程序绕过验证机制。如果不使用加密狗,硬件特征很容易伪造。总之,采用现成的解决方案省时省心。

不可能要每个客户的服务器都插上个加密狗吧???如果我在程序中加入了License验证功能后,现在还有什么做法是可以防止把License从程序中去掉的保护机制?
解决方案:
C#授权组件设计-LicenseControlProjecthttp://blog.csdn.net/wonsoft/article/details/3123264
解决方案:
http://www.cnblogs.com/JamesLi2015/archive/2013/05/03/3055998.html
解决方案:
引用16楼wind_cloud2011的回复:

http://www.cnblogs.com/JamesLi2015/archive/2013/05/03/3055998.html

非常感谢,很有用。但是,该文中好像没有提及到一点,就是当其他用户拿到应用程序后,通过反编绎将代码反出来,然后将涉及到License的那一部分代码去除,对于这一点我们在程序中应该如何做才能避免此情况的发生??
解决方案:
引用17楼u013510302的回复:

Quote: 引用16楼wind_cloud2011的回复:
http://www.cnblogs.com/JamesLi2015/archive/2013/05/03/3055998.html

非常感谢,很有用。但是,该文中好像没有提及到一点,就是当其他用户拿到应用程序后,通过反编绎将代码反出来,然后将涉及到License的那一部分代码去除,对于这一点我们在程序中应该如何做才能避免此情况的发生??

楼上不是说了加壳么?
解决方案:
引用18楼happy09li的回复:

Quote: 引用17楼u013510302的回复:
Quote: 引用16楼wind_cloud2011的回复:
http://www.cnblogs.com/JamesLi2015/archive/2013/05/03/3055998.html

非常感谢,很有用。但是,该文中好像没有提及到一点,就是当其他用户拿到应用程序后,通过反编绎将代码反出来,然后将涉及到License的那一部分代码去除,对于这一点我们在程序中应该如何做才能避免此情况的发生??

楼上不是说了加壳么?

我不是很明白那个加壳是怎么样做?这个加壳跟使用.NetObfuscator将代码混淆是不是同一样东西?可否给个例子?
解决方案:
不加壳是很容易给反编译的加壳:http://www.cnblogs.com/jason-liu-blogs/archive/2012/07/30/2615883.htmlhttp://download.csdn.net/download/wwtwx/689064

时间: 2024-12-04 00:25:22

在 C# 窗口应用程序中要加入 License 授权才能使用的方法的相关文章

c#3 0-如何在c#窗口应用程序中打开一个数据库

问题描述 如何在c#窗口应用程序中打开一个数据库 在下新手,在数据库编程时做书上的例子,通过c#程序登录界面,登录到一个数据库,我使用了本地服务器.在SQL server management studio中,使用账号sa以sqlserver身份验证方式可以登录服务器名为HY-20141014UKZESQLEXPRESS的数据库引擎,并且创建了一个名为Fiancing的数据库, 参考书上的例子如下,怎么样可以在这个c#程序中登录Fiancing数据库?private void btnLogin_

基于对话框程序中让对话框捕获WM_KEYDOWN消息的实现方法_C 语言

在对话框程序中,我们经常是利用对话框上的子控件进行命令响应来处理一些事件.如果我们想要让对话框(子控件的父窗口)类来响应我们的按键消息,我们可以通过ClassWizard对WM_KEYDOWN消息进行响应,当程序运行后,我们按下键盘上的按键,但对话框不会有任何的反应.这是因为在对话框程序中,某些特定的消息,例如按键消息,它们被Windows内部的对话框过程处理了(即在基类中完成了处理,有兴趣的读者可以查看MFC的源代码),或者被发送给子控件进行处理,所以我们在对话框类中就捕获不到按键的消息了.

winform 应用程序中加入web service(即web 服务)的方法?

问题描述 C/S结构中WinForm应用程序能调用WebService,比如网站中提供的Web服务,能否反过来:WinForm程序中包含Web服务,让Web网站系统能够调用这些WinForm的Web服务?优点:网站就可以向app或winform程序推送即时消息了.能否? 解决方案 解决方案二:WebService好象既不是BS也不是CS.他只是BS与CS中的S(Server端)WS无非是请求数据.这些数据一般BS与CS的数据都是放同一个地方.解决方案三:你这不就是自己写一个iis然后提供webs

iOS应用程序中通过dispatch队列控制线程执行的方法_IOS

GCD编程的核心就是dispatch队列,dispatch block的执行最终都会放进某个队列中去进行,它类似NSOperationQueue但更复杂也更强大,并且可以嵌套使用.所以说,结合block实现的GCD,把函数闭包(Closure)的特性发挥得淋漓尽致. dispatch队列的生成可以有这几种方式: 1. dispatch_queue_t queue = dispatch_queue_create("com.dispatch.serial", DISPATCH_QUEUE_

Win8如何在弹出窗口阻止程序设置例外站点

  Win8在弹出窗口阻止程序设置例外站点的方法如下: 1.如果有显示命令栏,可直接点击"工具"按钮,将鼠标指针移动到"弹出窗口阻止程序"上,点击"弹出窗口阻止程序设置". 2.在"要允许的网站地址"中输入网址,点击"添加",添加后会在"允许的站点"列表中显示. 3.如果没有显示命令栏,可点击IE右上角"工具"按钮图标,选择"Internet 选项"

在Java程序中运行外部类文件

程序 在Java程序中运行外部类文件 一.引言无论是用传统的编程语言(C++.VB等)还是Java语言编程,都经常需要在一个运行的程序中执行另外一个独立的外部程序.例如用Java设计一个IDE程序,那么这个IDE程序就必需能够调式.运行其它独立的外部Java程序.况且直接运行已经存在的外部程序来实现本程序的某些特定的功能,也是提高程序开发效率的一种重要手段.Java2为实现在一个Java程序中运行外部类文件(即Java程序)提供了的两种解决方案,即在同一进程中运行外部类文件和在不同进程中运行外部

web.config配置web应用程序中的数据库连接

web|程序|数据|数据库|数据库连接   web.config文件是标准的xml文件,我们可以使用它来为一台机器下的每一个web应用程序或某个应用程序或一个目录下的asp.net页面来进行设置,当然,它也可以为一个单独的web页面进行设置.  如:网站的主目录是\inetpub\wwwroot\,那么我们将web.config放置于其下,那么这个网站中的应用程序将被web.config中的设置所影响.  e.g.:  <?xml version="1.0" encoding=&

技巧:在Silverlight应用程序中操作Cookie

概述 很多朋友来信问如何在Silverlight 2中操作Cookie,这里专门写篇文章介绍一下.为了实现在Silverlight应用程序中对于Cookie的操作,我们需要借助于HtmlPage.Document对象. 在使用HtmlPage.Document之前,请先添加System.Windows.Browser命名空间.本文介绍了如何在Silverlight应用程序中操作Cookie,并在最后给出了一个操作Cookie的公用类,大家可以直接在自己的应用程序中使用. 写入Cookie 在Si

程序中的得与失

俗话说,舍得,有舍便有得,程序或许和世间万物一个样,讲究阴阳平衡.或许您写程序过程中,得到一颗歪脖树,却放弃了一大片大森林,能正确的取舍矛盾体双方的关系,或许是您扎实功底的体现,当然这必须需要一种日积月累的过程.下面我就说一些程序的矛盾体,起一个抛砖引玉的作用. 一.时间与空间 程序中存储空间与时间,自古就是天敌一枚,自古就是有我没他,有他没我的局面.这对天敌关系处理,令无数英雄竞折腰. 弄清楚他们之间关系,让我们从空间与时间观点,从辩证唯物主义思想来分析程序. 我们知道一个程序分为几个层次,每