一种基于USBKey的软件授权方法及系统与流程

文档序号:24732054发布日期:2021-04-20 14:57阅读:501来源:国知局
一种基于USBKey的软件授权方法及系统与流程
一种基于usb key的软件授权方法及系统
技术领域
1.本发明涉及商业软件的授权技术,具体涉及一种基于usb key的软件授权方法及系统。


背景技术:

2.授权许可是软件发行比较通用的一种维权手段,也就是正版软件的一个身份证,本质是防止盗版、按功能收费等。目前,商用软件和共享软件绝大部份都是采用授权许可的方式来保证软件本身不被盗用,以保证自身的利益。授权许可有许多不同的机制和方式,有些简洁易用,但是比较容易被复制、滥用和破解;有些则相对安全可靠,但是设计和实现复杂。不同产品需要根据自身的特性和定位选择一种有效的方案。普通的软件授权方法,一般是通过提取系统上的硬件特征码,通过复杂的加密、解密机制来完成授权,若没有任何硬件相关的特性,不能防范授权码被重复使用,发放出去的授权码基本上不受控制,可能会给公司造成严重的损失;使用授权码license进行软件授权是常用的方式之一,通常采取机器码加授权码的授权模式,机器码由特定硬件信息生成,与硬件绑定,授权码根据机器码生成,输入目标机器进行授权,授权采用单机离线模式,每台设备需手动人工进行授权。这种授权方式容易出错、慢,在虚拟化环境中,虚拟机数量基数大,采用此种授权模式显然不合常理。


技术实现要素:

3.本发明要解决的技术问题:针对虚拟化环境虚拟机基数大,传统的授权方法无法对虚拟机系统进行批量授权的问题,以及传统的授权方法无法防止授权码被重复使用的问题,提供一种基于usb key的软件授权方法及系统,本发明完成注册方便快捷,不用手动输入一长串的授权码,可避免手动输入容易出错的问题,尤其适合包含大批量虚拟机在内的大批量计算机设备的授权;本发明破解难度大大提高,加密生成授权码部分通过usb key设备硬件完成,可防止授权码被重复使用的问题,而且保密性好,使得破解难度大大提高。
4.为了解决上述技术问题,本发明采用的技术方案为:
5.一种基于usb key的软件授权方法,包括通过注册程序对被授权计算机进行注册的步骤:
6.1)调用插入被授权计算机的usb key设备中的算号程序,通过该算号程序基于被授权计算机的机器码生成授权码;
7.2)将生成的授权码写入被授权计算机。
8.可选地,步骤1)中调用插入被授权计算机的usb key设备中的算号程序后,算号程序的执行步骤包括:
9.s1)读取被授权计算机的机器码;
10.s2)检测所述机器码是否已经被注册过,若已经被注册过则直接读取对应的授权码,并跳转执行步骤s5);否则跳转执行步骤s3);
11.s3)读取usb key设备中的授权点数,若授权点数大于设定值,则跳转执行下一步;
否则,输出错误码,结束并退出;
12.s4)基于所述机器码生成授权码,并将usb key设备中的授权点数减1;
13.s5)输出生成的授权码。
14.可选地,步骤s4)基于所述机器码生成授权码包括:读取usb key设备中的过期时间,将过期时间、机器码采用预设的加密算法生成授权码。
15.可选地,步骤s2)中检测被授权计算机的机器码是否已经被注册过具体是指将被授权计算机的机器码与usb key设备中存储的已注册的机器码进行比对来判断被授权计算机的机器码是否已经被注册过;步骤s4)中还包括将被授权计算机的机器码及授权码写入usb key设备的步骤。
16.可选地,步骤1)之前还包括对插入被授权计算机的usb key设备进行安全认证的步骤:通过usb key设备的api接口获取usb key设备的硬件序列号,然后将获得的硬件序列号和usb key设备中存储的硬件序列号进行比对,若两者一致则判定认证通过,再将usb key设备的硬件序列号转换为验证码,并将转换得到的验证码、用户输入的验证码进行比对,如果转换得到的验证码、用户输入的验证码一致则跳转执行步骤1);否则判定认证不通过,报错并退出。
17.可选地,步骤1)之前还包括预先初始化usb key设备的步骤:针对已插入本地计算机中的usb key设备,通过usb key设备的api接口获取usb key设备的硬件序列号,并将获得的硬件序列号写入usb key设备中;将授权点数、过期时间写入usb key设备;将算号程序写入usb key设备。
18.可选地,所述usb key设备包括高级存储区和低级存储区,所述高级存储区为验证开发商密码后才可进行写操作的分区,低级存储区为不需要验证开发商密码即可进行写操作的分区,所述将获得的硬件序列号写入usb key设备中具体是指写入usb key设备的高级存储区,所述将授权点数、过期时间写入usb key设备具体是指写入usb key设备的高级存储区;所述将算号程序写入usb key设备具体是指将算号程序写入usb key设备的高级存储区;所述低级存储区用于存储被注册过的计算机的机器码。
19.可选地,步骤2)之后还包括关闭usb key设备的步骤。
20.此外,本发明还提供一种基于usb key的软件授权系统,包括计算机设备,该计算机设备包括微处理器和存储器,该微处理器被编程或配置以执行所述基于usb key的软件授权方法的步骤,或者该存储器中存储有被编程或配置以执行所述基于usb key的软件授权方法的计算机程序。
21.此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述基于usb key的软件授权方法的计算机程序。
22.和现有技术相比,本发明具有下述优点:
23.1、本发明完成注册方便快捷,不用手动输入一长串的授权码,可避免手动输入容易出错的问题,尤其适合包含大批量虚拟机在内的大批量计算机设备的授权;
24.2、本发明调用插入被授权计算机的usb key设备中的算号程序,通过该算号程序基于被授权计算机的机器码生成授权码,本发明加密生成授权码部分通过usb key设备硬件完成,破解难度大大提高,而且保密性好,使得破解难度大大提高。
25.3、本发明调用插入被授权计算机的usb key设备中的算号程序,通过该算号程序
基于被授权计算机的机器码生成授权码,本发明加密生成授权码部分通过usb key设备硬件完成,可防止授权码被重复使用的问题。
附图说明
26.图1为本发明实施例方法的基本流程图。
27.图2为本发明实施例中kylin

about程序执行注册的详细流程图。
28.图3为本发明实施例中kysn算号程序的执行流程示意图。
29.图4为本发明实施例中kysn算号程序的调用返回示意图。
30.图5为本发明实施例中keyinit程序初始化usb key设备的流程示意图。
31.图6为本发明实施例中usb key设备分区示意图。
具体实施方式
32.下文将以麒麟操作系统进行软件授权为例,对本发明基于usb key的软件授权方法及系统进行进一步的详细说明。毫无疑问,本发明基于usb key的软件授权方法及系统并不局限于特定的操作系统或软件。
33.如图1所示,本实施例基于usb key的软件授权方法包括通过注册程序对被授权计算机进行注册的步骤:
34.1)调用插入被授权计算机的usb key设备中的算号程序,通过该算号程序基于被授权计算机的机器码生成授权码;
35.2)将生成的授权码写入被授权计算机。
36.作为一种具体的实施方式,本实施例中注册程序命名为kylin

about程序,打开kylin

about程序,即可看到麒麟操作系统当前的注册状态,如未注册的麒麟操作系统可看到提示系统未注册。当往该计算机的usb接口中插入usb key设备后,点击注册,即可执行前述步骤1)~步骤2),执行完毕后弹出注册成功的提示框,表示该计算机注册完成;然后,即可使用该usb key设备继续用于其余尚未注册的计算机的注册。本实施例基于usb key的软件授权方法完成注册方便快捷,不用手动输入一长串的授权码,可避免手动输入容易出错的问题,尤其适合包含大批量虚拟机在内的大批量计算机设备的授权;本实施例基于usb key的软件授权方法调用插入被授权计算机的usb key设备中的算号程序,通过该算号程序基于被授权计算机的机器码生成授权码,本发明加密生成授权码部分通过usb key设备硬件完成,破解难度大大提高,而且保密性好,使得破解难度大大提高。
37.图2为kylin

about程序对被授权计算机进行注册的详细流程图,如图2所示,kylin

about程序对被授权计算机进行注册的具体步骤包括:读取kylin

about程序运行所需的配置文件;检查是否插入usb key设备,若未插入usb key设备则提示插入usb key设备;若已插入usb key设备,则打开usb key设备,对插入被授权计算机的usb key设备进行安全认证,若认证通过则跳转执行步骤1);否则判定认证不通过,报错并退出;在步骤1)执行完毕后,最终在执行步骤2)将生成的授权码写入被授权计算机(进行注册授权)之后即可关闭usb key设备,注册完成。
38.为了防止对usb key设备的硬件拷贝、提升usb key设备的安全性,参见图2,本实施例中步骤1)之前还包括对插入被授权计算机的usb key设备进行安全认证的步骤:通过
usb key设备的api接口获取usb key设备的硬件序列号,然后将获得的硬件序列号和usb key设备中存储的硬件序列号进行比对(防止对usb key设备的硬件拷贝),若两者一致则判定认证通过,再将usb key设备的硬件序列号转换为验证码,并将转换得到的验证码、用户输入的验证码进行比对,如果转换得到的验证码、用户输入的验证码一致(放置未经授权的操作)则跳转执行步骤1);否则判定认证不通过,报错并退出。
39.参见图2,本实施例中步骤2)之后还包括关闭usb key设备的步骤,通过该方式可便于快速拔出usb key设备以进行其它计算机的注册。
40.作为一种具体的实施方式,本实施例中usb key设备中的算号程序命名为kysn算号程序,kysn算号程序是一个写入在usb key设备的用户空间中的二进制程序,其主要实现功能是根据机器码及到期时间计算出授权码,该程序是用c51语言写的,编译之后通过工具将其写入在rockey3用户空间。如图3所示,步骤1)中调用插入被授权计算机的usb key设备中的算号程序后,算号程序的执行步骤包括:
41.s1)读取被授权计算机的机器码;
42.s2)检测所述机器码是否已经被注册过,若已经被注册过则直接读取对应的授权码,并跳转执行步骤s5);否则跳转执行步骤s3);
43.s3)读取usb key设备中的授权点数,若授权点数大于设定值,则跳转执行下一步;否则,输出错误码,结束并退出;
44.s4)基于所述机器码生成授权码,并将usb key设备中的授权点数减1;
45.s5)输出生成的授权码。
46.需要说明的是,机器码是否已经被注册过可以根据需要选择通过网络验证或者离线验证。作为一种可选的离线验证实施方式,步骤s2)中检测被授权计算机的机器码是否已经被注册过具体是指将被授权计算机的机器码与usb key设备中存储的已注册的机器码进行比对来判断被授权计算机的机器码是否已经被注册过;步骤s4)中还包括将被授权计算机的机器码及授权码写入usb key设备的步骤,从而使得s2)可直接读取对应的授权码。
47.需要说明的是,预设的加密算法可以根据需要采用各类标准加密算法,也可以采用自定义的加密算法,本实施例中不涉及加密算法的改进,故不再对加密算法进行展开说明。
48.毫无疑问,授权码既可以是一种永久授权的方式,也可以是一种带期限的授权方式。作为一种带期限的授权方式,如图4所示,本实施例中步骤s4)基于所述机器码生成授权码包括:读取usb key设备中的过期时间,将过期时间、机器码采用预设的加密算法生成授权码。参见图4可知,将过期时间、机器码传递给usb key设备中kysn算号程序,即可利用预设的加密算法获得对应的授权码。图4中的kylin

verify为验证usb key设备中kysn算号程序的程序,用于调试验证usb key设备中kysn算号程序。
49.本实施例中,步骤1)之前还包括预先初始化usb key设备的步骤:针对已插入本地计算机中的usb key设备,通过usb key设备的api接口获取usb key设备的硬件序列号,并将获得的硬件序列号写入usb key设备中;将授权点数、过期时间写入usb key设备。作为一种可选的实施方式,usb key设备中还存储有客户代码信息,本实施例中usb key设备中存储的硬件序列号、授权点数、过期时间、客户代码等信息都是通过特定的偏移地址进行写入以及读取。
50.本实施例中预先初始化usb key设备是通过keyinit程序实现的,如图5所示,keyinit程序执行初始化usb key设备的步骤包括:检查是否找到usb key设备,若未找到usb key设备则提示插入usb key设备;若已找到usb key设备,则打开usb key设备对插入被授权计算机的usb key设备进行安全认证,安全认证通过后则通过usb key设备的api接口获取usb key设备的硬件序列号,并将获得的硬件序列号写入usb key设备中;将授权点数、过期时间写入usb key设备;将算号程序写入usb key设备,然后即可关闭usb key设备,初始化完成。
51.如图6所示,本实施例中usb key设备包括高级存储区和低级存储区,所述高级存储区为验证开发商密码后才可进行写操作的分区,低级存储区为不需要验证开发商密码即可进行写操作的分区,所述将获得的硬件序列号写入usb key设备中具体是指写入usb key设备的高级存储区,所述将授权点数、过期时间写入usb key设备具体是指写入usb key设备的高级存储区;所述将算号程序写入usb key设备具体是指将算号程序写入usb key设备的高级存储区;所述低级存储区用于存储被注册过的计算机的机器码。
52.本实施例中usb key设备具体采用rockey3 key,rockey3 key提供了8k的数据存储区。其中,0

7167字节为低级数据区,7168

8191字节(共1024字节)为高级数据存储区。低级存储区不论是开发商模式或者用户模式都可以进行读写操作。高级数据区只有在验证了开发商密码后,才可以进行写操作。将usb key设备插入需要授权的机器上认证(打开usb key设备,读取硬件序列号,调用转换函数,转换之后的结果即为pin码),认证通过后,点击kylin

about程序的注册按钮时,先搜索usb key设备的低级存储区,确认需要注册的机器是否是之前注册过的,若没有注册过,则kylin

about程序通过kysn算号程序读取和操作usb key设备中用户空间的剩余点数,如果点数大于等于1,则通过调用kysn算号程序计算授权码,然后将授权码等license信息写入到被授权的机器。
53.综上所述,本实施例基于usb key的软件授权方法采用一个完成了初始化的usb key设备,usb key设备初始化时(利用keyinit程序完成usb key设备的初始化),将客户代码、授权点数、过期时间,硬件序列号等信息写入usb key设备的高级存储区。将usb key设备插入需要授权的机器上认证,认证通过后,点击kylin

about程序界面的注册按钮时,kylin

about程序通过c51编写的kysn算号程序读取和操作usb key设备中用户空间的剩余点数,如果点数大于等于1,则调用kysn算号程序计算授权码,然后由kylin

about将授权码等信息写入到被授权的机器上完成系统授权。依次类推,当有另外一台机器需要注册时,只需要插入usb key设备,然后在kylin

about程序上点击注册即可完成注册。
54.此外,本实施例还提供一种基于usb key的软件授权系统,包括计算机设备,该计算机设备包括微处理器和存储器,该微处理器被编程或配置以执行前述基于usb key的软件授权方法的步骤,或者该存储器中存储有被编程或配置以执行前述基于usb key的软件授权方法的计算机程序。
55.此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述基于usb key的软件授权方法的计算机程序。
56.本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机
可读存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
57.以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1