一种对个人电脑的软件使用授权的方法与流程

文档序号:32485757发布日期:2022-12-10 01:00阅读:332来源:国知局
一种对个人电脑的软件使用授权的方法与流程

1.本发明涉及信息安全技术领域,具体为一种对个人电脑的软件使用授权的方法。


背景技术:

2.随着移动安全技术的发展,越来越多的软件开发商,希望其研发的软件产品的使用权能够被保护,仅允许被授权的终端设备运行该软件产品。这种方法要求软件开发商在将软件产品交付客户后,对软件在终端设备上的运行许可进行授权管理。
3.软件的授权方法主要有在线授权、离线授权、集团授权和试用授权,采用在线授权的方法时,当软件程序运行在不可信的执行环境时,授权码的计算过程可能被破解,可能通过篡改授权状态绕过授权保护机制;离线鉴权一般使用软件激活码的方式,该方式往往只能对单个设备进行授权,且需要收集设备机器码(包括mac地址、cup序列号等)才能生成鉴权凭证,同时激活码还容易泄露,安全性差;采用集团授权时,集团自己部署认证服务器管理本集团内部的软件使用。这类情况下,软件提供者无法有效控制各集团内部的认证服务器;试用授权的方法,容易导致软件滥用,且终端设备软件卸载后重新安装软件试用期重新开始计算,使得用户能够获得无限期的软件使用试用期,损害软件开发者的利益。
4.上述软件的使用授权是针对软件本身授权或者在线登录后取得授权,这种策略固然方便,但是无法确保软件的授权码或者登录账号不被盗用或者滥用。


技术实现要素:

5.本发明提供了一种对个人电脑的软件使用授权的方法,对单一计算机进行授权,取得授权后,仅有该计算机可以使用某一软件,解决了上述背景技术中提出的对软件本身授权或者在线登录后取得授权,无法确保软件的授权码或者登录账号不被盗用或者滥用问题。
6.本发明提供如下技术方案:一种对个人电脑的软件使用授权的方法,包括以下步骤:
7.步骤一、创建命令窗口,从该命令窗口输入预设命令以获取主板信息和cpu信息,从获取的主板信息中摘出主板序列号,从获取到的cpu信息中摘出cpu序列号;
8.步骤二、将主板序列号和cpu序列号拼接获得总体字符串;
9.步骤三、对总体字符串进行杂凑,获取电脑识别码;
10.步骤四、将识别码发送给软件开发者,软件开发者对识别码做签名,获得签名值,对签名值进行编码,生成注册码,软件开发者将注册码发送给使用者;
11.步骤五、使用者将签名值导入,软件内部公钥对签名值进行验签;
12.步骤六、验签成功,获得软件的使用权限,验签失败,限制软件的使用。
13.优选的,步骤一中创建的命令窗口处于隐藏的状态。
14.优选的,步骤二中主板序列号和cpu序列号拼接时,需要把主板序列号放在前面,cpu序列号放在后面。
15.优选的,步骤四中,软件开发者用预设的私钥对识别码进行识别,对识别码中的字符串用算法进行签名获得签名值,对获得的签名值进行编码,生成注册码。
16.优选的,识别码和注册码的交流方式在于开发者选用的注册模式。
17.优选的,步骤五中使用者对接收的注册码进行解码后,能够得到签名值。
18.与现有技术对比,本发明具备以下有益效果:
19.1、该对个人电脑的软件使用授权的方法,对单一计算机进行授权,取得授权后,仅有该计算机可以使用某一软件,不会出现盗用授权码或者账号的问题,适合机密性的数据管理软件使用。
20.2、该对个人电脑的软件使用授权的方法,通过远程解锁智能密码钥匙可以在保障安全的情况下提高解锁效率,不用通过快递发送设备,有很高的经济性及安全性,方便用户使用。
附图说明
21.图1为本发明工作流程示意图。
具体实施方式
22.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
23.本发明提供了一种实施例:请参阅图1,一种对个人电脑的软件使用授权的方法,包括以下步骤:
24.步骤一、创建命令窗口,并将该命令窗口隐藏,以隐藏个人电脑信息获取方式,从该命令窗口输入预设命令以获取主板信息和cpu信息,从获取的主板信息中摘出主板序列号,从获取到的cpu信息中摘出cpu序列号;
25.步骤二、将主板序列号和cpu序列号拼接获得总体字符串,且在拼接时,主板序列号和cpu序列号的拼接顺序为主板序列号在前、cpu序列号在后;
26.步骤三、对总体字符串用公开算法sm3算法进行杂凑,获得的杂凑值为这台电脑的识别码,获取电脑识别码;
27.步骤四、使用者根据软件开发者设置的注册模式,将识别码发送给软件开发者,软件开发者用预设的私钥对识别码进行识别,对识别码中的字符串用sm2算法进行sm2签名获得签名值,对获得的签名值进行base64编码,生成注册码,软件开发者将注册码利用相同路径发送给使用者;
28.步骤五、使用者对接收的注册码进行base64解码,获得签名值,使用者将签名值导入,软件内部公钥对签名值进行验签;
29.步骤六、验签成功,获得软件的使用权限,验签失败,限制软件的使用。
30.实施例1:
31.创建命令窗口,并将该命令窗口隐藏,从该命令窗口输入预设命令以获取主板信息和cpu信息,从获取的主板信息中摘出主板序列号,从获取到的cpu信息中摘出cpu序列
号;将主板序列号在前、cpu序列号在后的顺序拼接成一个总体字符串;对总体字符串用公开算法sm3算法进行杂凑,获得的杂凑值为这台电脑的识别码,获取电脑识别码;使用者需要将识别码选中按ctrl+c复制,然后按ctrl+v粘贴到聊天软件按发送键发送给软件开发者,开发者对识别码用预设的私钥对字符串用国家发布的公开算法sm2算法进行sm2签名获得签名值,对获得的签名值进行base64编码后作为注册码使用,然后软件开发者需要将注册码通过聊天软件发送给使用者;使用者将注册码导入,软件读取后,对注册码进行base64解码,获得签名值,然后用内部的公钥对签名值进行sm2验签;验签成功,允许使用软件。
32.实施例2:
33.创建命令窗口,并将该命令窗口隐藏,从该命令窗口输入预设命令以获取主板信息和cpu信息,从获取的主板信息中摘出主板序列号,从获取到的cpu信息中摘出cpu序列号;将主板序列号在前、cpu序列号在后的顺序拼接成一个总体字符串;对总体字符串用公开算法sm3算法进行杂凑,获得的杂凑值为这台电脑的识别码,获取电脑识别码;使用者需要将识别码通过邮件发送给软件开发者,开发者对识别码用预设的私钥对字符串用国家发布的公开算法sm2算法进行sm2签名获得签名值,对获得的签名值进行base64编码后作为注册码使用,然后软件开发者需要将注册码通过邮件发送给使用者;使用者将注册码导入,软件读取后,对注册码进行base64解码,获得签名值,然后用内部的公钥对签名值进行sm2验签;验签失败,不允许使用软件。
34.用sm3算法对总体字符串进行杂凑的实施例为:
35.getbaseboardbycmd_win(motherboardnum,&motherboardnumlen);
36.getcpubycmd_win(cpunum,&cpunumlen);
37.strcat(motherboardnum,cpunum);
38.motherboardnumlen+=cpunumlen;
39.sm3_init(&sm3_ctx);
40.sm3_update(&sm3_ctx,motherboardnum,motherboardnumlen);
41.sm3_final(sm3data_t,&sm3_ctx);
42.str2hex(sm3data_t,32,sm3datahex_t);
43.memset(sm3data,0,65);
44.memcpy((char*)sm3data,(const char*)sm3datahex_t,64);
45.return rv.
46.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1