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

gl_biz 2014-01-21 03:07:29
Hi,

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

请指点,谢谢.
...全文
2754 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
wind_cloud2011 2014-01-22
  • 打赏
  • 举报
回复
http://www.cnblogs.com/JamesLi2015/archive/2013/05/03/3055998.html
wind_cloud2011 2014-01-22
  • 打赏
  • 举报
回复
C#授权组件设计 - LicenseControlProject http://blog.csdn.net/wonsoft/article/details/3123264
wind_cloud2011 2014-01-22
  • 打赏
  • 举报
回复
不加壳是很容易给反编译的 加壳: http://www.cnblogs.com/jason-liu-blogs/archive/2012/07/30/2615883.html http://download.csdn.net/download/wwtwx/689064
gl_biz 2014-01-22
  • 打赏
  • 举报
回复
引用 18 楼 happy09li 的回复:
[quote=引用 17 楼 u013510302 的回复:] [quote=引用 16 楼 wind_cloud2011 的回复:] http://www.cnblogs.com/JamesLi2015/archive/2013/05/03/3055998.html
非常感谢,很有用。 但是,该文中好像没有提及到一点,就是当其他用户拿到应用程序后,通过反编绎将代码反出来,然后将涉及到 License 的那一部分代码去除,对于这一点我们在程序中应该如何做才能避免此情况的发生??[/quote] 楼上不是说了加壳么? [/quote] 我不是很明白那个加壳是怎么样做?这个加壳跟使用 .Net Obfuscator 将代码混淆是不是同一样东西? 可否给个例子?
熙风 2014-01-22
  • 打赏
  • 举报
回复
引用 17 楼 u013510302 的回复:
[quote=引用 16 楼 wind_cloud2011 的回复:] http://www.cnblogs.com/JamesLi2015/archive/2013/05/03/3055998.html
非常感谢,很有用。 但是,该文中好像没有提及到一点,就是当其他用户拿到应用程序后,通过反编绎将代码反出来,然后将涉及到 License 的那一部分代码去除,对于这一点我们在程序中应该如何做才能避免此情况的发生??[/quote] 楼上不是说了加壳么?
gl_biz 2014-01-22
  • 打赏
  • 举报
回复
引用 16 楼 wind_cloud2011 的回复:
http://www.cnblogs.com/JamesLi2015/archive/2013/05/03/3055998.html
非常感谢,很有用。 但是,该文中好像没有提及到一点,就是当其他用户拿到应用程序后,通过反编绎将代码反出来,然后将涉及到 License 的那一部分代码去除,对于这一点我们在程序中应该如何做才能避免此情况的发生??
gl_biz 2014-01-21
  • 打赏
  • 举报
回复
引用 12 楼 caozhy 的回复:
使用现成的加密狗。 加密狗主要做两件事情,一个是对程序加密(也就是所谓的加壳),一个是加密狗本身是硬件,具有唯一性和防复制性。这两者缺一不可,如果不加密,破解者很容易修改程序绕过验证机制。如果不使用加密狗,硬件特征很容易伪造。 总之,采用现成的解决方案省时省心。
不可能要每个客户的服务器都插上个加密狗吧??? 如果我在程序中加入了 License 验证功能后, 现在还有什么做法是可以防止把 License 从程序中去掉的保护机制?
threenewbee 2014-01-21
  • 打赏
  • 举报
回复
使用现成的加密狗。 加密狗主要做两件事情,一个是对程序加密(也就是所谓的加壳),一个是加密狗本身是硬件,具有唯一性和防复制性。这两者缺一不可,如果不加密,破解者很容易修改程序绕过验证机制。如果不使用加密狗,硬件特征很容易伪造。 总之,采用现成的解决方案省时省心。
泡泡龙 2014-01-21
  • 打赏
  • 举报
回复
引用 6 楼 u013510302 的回复:
[quote=引用 5 楼 liucqa 的回复:] 你不加壳,代码就是裸奔,有License也没用
可以说得详细一点吗? 加壳后就可以不用 License 吗?[/quote] 加壳就是加代码呀,代码里面加啥都行,具体工具好多,搜索.net加壳
gl_biz 2014-01-21
  • 打赏
  • 举报
回复
引用 9 楼 laiyongxin 的回复:
[quote=引用 8 楼 u013510302 的回复:] [quote=引用 7 楼 laiyongxin 的回复:] [quote=引用 3 楼 u013510302 的回复:] [quote=引用 2 楼 laiyongxin 的回复:] 获取机器码 然后将其加密,加密后的数据就是License 一般用rsa加密 你在软件中配置好公钥 私钥你自己留着
不是很明白,如果没有私钥,我在程序中怎么验证用户得到的 License 文件或序列号??我又如何在程序中来解密?[/quote] rsa加密你先去了解下. 你只要保管好你的私钥就可以了,程序中只要用公钥就可以进行解密你用私钥加密过的数据, 只要解密后的数据和机器码进行比对一下 就能判断该机器是否通过验证了 [/quote] 那公钥是不是硬写在程序里面? 另外,如果这个私钥不需要用在解密,那这个私钥还有什么用??[/quote] 公钥 可以硬写在程序里 私钥用来加密用 你先去google下rsa加密[/quote] 我大概想明白其中的意思了,私钥应该是可以用来生成很多个 License 文件,这个理解是否准确? 我稍后再 google rsa ,我还有一个问题想问清楚一些, 关于上面所说的加壳,对 License 有帮助吗?用 RSA 是否不用加壳? 还有如何防止加入了 License 后又给容易的把 License 限制去掉?这点应该用什么概念??
lyx266 2014-01-21
  • 打赏
  • 举报
回复
引用 8 楼 u013510302 的回复:
[quote=引用 7 楼 laiyongxin 的回复:] [quote=引用 3 楼 u013510302 的回复:] [quote=引用 2 楼 laiyongxin 的回复:] 获取机器码 然后将其加密,加密后的数据就是License 一般用rsa加密 你在软件中配置好公钥 私钥你自己留着
不是很明白,如果没有私钥,我在程序中怎么验证用户得到的 License 文件或序列号??我又如何在程序中来解密?[/quote] rsa加密你先去了解下. 你只要保管好你的私钥就可以了,程序中只要用公钥就可以进行解密你用私钥加密过的数据, 只要解密后的数据和机器码进行比对一下 就能判断该机器是否通过验证了 [/quote] 那公钥是不是硬写在程序里面? 另外,如果这个私钥不需要用在解密,那这个私钥还有什么用??[/quote] 公钥 可以硬写在程序里 私钥用来加密用 你先去google下rsa加密
gl_biz 2014-01-21
  • 打赏
  • 举报
回复
引用 7 楼 laiyongxin 的回复:
[quote=引用 3 楼 u013510302 的回复:] [quote=引用 2 楼 laiyongxin 的回复:] 获取机器码 然后将其加密,加密后的数据就是License 一般用rsa加密 你在软件中配置好公钥 私钥你自己留着
不是很明白,如果没有私钥,我在程序中怎么验证用户得到的 License 文件或序列号??我又如何在程序中来解密?[/quote] rsa加密你先去了解下. 你只要保管好你的私钥就可以了,程序中只要用公钥就可以进行解密你用私钥加密过的数据, 只要解密后的数据和机器码进行比对一下 就能判断该机器是否通过验证了 [/quote] 那公钥是不是硬写在程序里面? 另外,如果这个私钥不需要用在解密,那这个私钥还有什么用??
lyx266 2014-01-21
  • 打赏
  • 举报
回复
引用 3 楼 u013510302 的回复:
[quote=引用 2 楼 laiyongxin 的回复:] 获取机器码 然后将其加密,加密后的数据就是License 一般用rsa加密 你在软件中配置好公钥 私钥你自己留着
不是很明白,如果没有私钥,我在程序中怎么验证用户得到的 License 文件或序列号??我又如何在程序中来解密?[/quote] rsa加密你先去了解下. 你只要保管好你的私钥就可以了,程序中只要用公钥就可以进行解密你用私钥加密过的数据, 只要解密后的数据和机器码进行比对一下 就能判断该机器是否通过验证了
gl_biz 2014-01-21
  • 打赏
  • 举报
回复
引用 5 楼 liucqa 的回复:
你不加壳,代码就是裸奔,有License也没用
可以说得详细一点吗? 加壳后就可以不用 License 吗?
泡泡龙 2014-01-21
  • 打赏
  • 举报
回复
你不加壳,代码就是裸奔,有License也没用
gl_biz 2014-01-21
  • 打赏
  • 举报
回复
引用 1 楼 liucqa 的回复:
加壳就行,别的都完蛋
你说的加壳是什么意思 ? 如果我要在程序中验证 License 有没有某一个指定的功能,(例如:写功能,如果没有写功能的话,就不能使用某个模块),这加壳能做到吗?
gl_biz 2014-01-21
  • 打赏
  • 举报
回复
引用 2 楼 laiyongxin 的回复:
获取机器码 然后将其加密,加密后的数据就是License 一般用rsa加密 你在软件中配置好公钥 私钥你自己留着
不是很明白,如果没有私钥,我在程序中怎么验证用户得到的 License 文件或序列号??我又如何在程序中来解密?
lyx266 2014-01-21
  • 打赏
  • 举报
回复
获取机器码 然后将其加密,加密后的数据就是License 一般用rsa加密 你在软件中配置好公钥 私钥你自己留着
泡泡龙 2014-01-21
  • 打赏
  • 举报
回复
加壳就行,别的都完蛋

111,096

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧