用于C# WinForm可扩展的一套授权验证策略[postbird_license.cs]

前述:

这是一则比较蛋疼的前述。

我在http://sxw.ptbird.cn 个税计算的授权版本中提到过,我自己搞了一个C# winform的授权验证方案,为什么要搞这个东西?因为我一开始写软件忽略了授权验证这个东西,真的是忽略了!

因为我本身并不是做C# Winform开发的,所以我也不知道这个授权到底应该怎么弄,网上也没有一个适合我的说法。因此当我把软件写出来之后,就面临是否要进行授权的方案,如果要进行授权,那么应该怎么搞。

根据我自己之前的一些积累和相关内容的查阅,最后我还是根据自己的想法,设计和实现了一套授权验证策略。

我把它称之为 postbird_license,典型的C/S架构实现的授权验证服务。

描述:

其实催生它的原因很简单,就是因为我确实不知道软件的授权验证方式应该怎么处理

我想这个问题可能不仅仅我有,或许每个winform的开发者都应该有自己的一套授权验证方式,前提是想做授权,说句大白话就是软件是需要付费才能用滴!

为什么叫做可扩展软件授权验证解决方案,其实很简单,因为这个授权验证的方案,与软件本身并没有特别直接的联系,即使像我一样,一开始忘记了去设计授权,后面也是很容易和轻松地加上去。

因为我不知道是不是所有的授权都是这么设计的,我也不知道这个叫法是否正确。(反正是自己起的名字,任性挡不住)

下面是我的debug的一个分支版本,也是最早的是时候用到的,软件打开后,如果没有授权,则需要第一次授权验证。

c1

只有授权验证通过才能使用软件进入主要的winform。

299d-tmp

实现:

几个关键点:

1、保证本机验证的确定性。(本机验证需要保留授权许可证明,不需要每次验证授权)

2、保证授权的可靠性。

3、保证授权的内容的多变性。

授权验证的流程:

1、判断本机是否已经授权了,若没有授权则进行授权。

2、输入姓名和相关的授权码以及验证码发送验证请求。

3、server进行授权验证的判断。

4、记录本机授权信息。

5、授权结束。

一、本机授权的验证策略(机器标记码)

首先,获取本机的各种码,这一点很关键,在我开源的版本中,获取了Mac地址,获取了CPU序列号,获取了硬盘ID,获取了网卡硬件地址获取了计算机名(计算机名最后没用,万一改名字还要重新授权,比较麻烦,但是也是一个不错的选择)。

为什么要拿到这么多码?

开源的版本中我是采用了txt文本的方式记录了一个机器码,这个机器码是我自己生成的,生成的方式很简单,将各种码通过一些随机的字符进行拼接,拼接后再通过MD5加密,然后进行des的加密成一个机器码的串,写入文本中,并保存

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值