软件授权方法与装置和计算机设备及存储介质与流程

文档序号:25650621发布日期:2021-06-29 20:13阅读:159来源:国知局
软件授权方法与装置和计算机设备及存储介质与流程

1.本发明涉及计算机软件授权技术领域,尤其涉及一种软件授权方法与装置和计算机设备及存储介质。


背景技术:

2.随着“互联网+”的全面推广,各类小工具和应用软件如春笋般涌出。这些工具为我们日常工作、生活提供了极大便利的同时,软件授权和版权管理也面临着很大挑战。
3.在现有技术中,一些经典的商业软件,往往投入单独的硬件设备,开发专有的授权服务程序,搭建完整的授权服务,对发行的软件进行授权和管理。与这些商业软件所不同的是,此类小型应用软件通常包含的技术创新点较为单一,开发者不具有较多的资源和精力用于软件授权管理系统的开发。而且工具所带来的经济效益相较于投入专门的授权服务,投入产出比较小。基于这些原因,例如,目前在android和ios应用商店中的各类需要付费的应用,大都采用付费下载的方式进行授权,采用这样的方式使得授权不具有灵活性。
4.传统的网络授权将注册或授权信息保存在远程授权服务器端,并且可以将关键算法与软件分离。待授权软件运行过程中,可通过不定期与服务端进行交互进行授权验证,以此结果决定软件的运行行为。
5.使用网络授权增加了逆向破解的难度,同时也可获得软件授权行为,对一些异常授权进行灵活管理,使得延长和停用授权变得较为便捷。然而,设计并开发完整的网络授权服务,不仅增加了授权服务端的硬件投入,也增加了软件开发者的研发和维护成本。另外,一般情况下,普通软件开发者并不具有安全类服务应用开发的领域知识,如果不能保证其设计的授权服务本身的安全性,基于此,实现的软件授权也将流于形式。
6.文献基于电子邮件系统和md5算法的软件授权控制技术研究与实现[j].计算机应用与软件,2003,20(9):72-74。其中设计一种使用e-mail存储授权信息,实现软件授权服务,它存在如下问题:
[0007]
首先,它并不是一种网络授权模式。它仅在软件没有本地授权文件或者授权文件无效之时,访问授权e-mail,下载授权文件。而之后的真正验证过程,只访问生成的授权文件。因此,e-mail在授权验证过程仅作为授权信息分发的存储媒介,而实际上软件授权过程则是通过本地的授权文件实现。
[0008]
其次,安全性较差。它并没有提及验证有效期的方法,简单点,攻击者通过修改系统时间便可达到破解的目的。深入点,访问的e-mail账号和密码,以及通信过程是否加密均未说明,攻击者可以构造虚假的授权e-mail。更深入一些,攻击者能够在不破坏待授权软件的完整性的情况下,编写注册机软件,生成授权文件,获得永久授权服务。
[0009]
公开于该背景技术部分的信息仅仅旨在加深对本发明的总体背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。
[0010]
基于上述原因,本发明提出了一种软件授权方法与装置和计算机设备及存储介质。


技术实现要素:

[0011]
为了满足上述要求,本发明第一个目的在于提供一种软件授权方法。
[0012]
本发明的第二个目的在于提供一种软件授权装置。
[0013]
本发明的第三个目的在于提供一种软件授权计算机设备。
[0014]
本发明的第四个目的在于提供一种非临时性计算机可读存储介质,其上存储有计算机程序。
[0015]
为了实现上述目的,本发明采用以下技术方案:
[0016]
第一方面,提供了一种软件授权方法,包括以下步骤:
[0017]
将用于授权的激活码放入软件的发布包中;
[0018]
对软件进行加密并且设置对软件的试用时间;
[0019]
判断并确认软件被启动后,从软件的初始启动时间开始计算软件的已使用时间;
[0020]
当已使用时间达到试用时间时,提示使用者进行重新授权操作;
[0021]
检测并确认使用者输入的激活码有效,更新使用者输入的激活码的使用权限,完成对软件的授权。
[0022]
在一个可能的实施方式中,所述检测并确认使用者输入的激活码有效的步骤之后还包括,正常启动软件并进入正常使用。
[0023]
在一个可能的实施方式中,所述方法还包括,当使用者需要上传授权的软件到云端,验证使用者的密码之后,将加密授权的软件密文还原为明文,将明文上传至云端。
[0024]
在一个可能的实施方式中,所述方法还包括,当使用者从云端下载授权的软件时,从所述明文的内容中获取使用者密码,对软件进行加密并存储于本地端。
[0025]
在另一方面,本发明还提出了一种软件授权装置,包括以下单元:
[0026]
激活码嵌入单元,用于将用于授权的激活码放入软件的发布包中;
[0027]
软件加密单元,用于对软件进行加密并且设置对软件的试用时间;
[0028]
时间计算单元,用于判断并确认软件被启动后,从软件的初始启动时间开始计算软件的已使用时间;
[0029]
授权提示单元,用于当已使用时间达到试用时间时,提示使用者进行重新授权操作;
[0030]
授权实施单元,用于检测并确认使用者输入的激活码有效,更新使用者输入的激活码的使用权限,完成对软件的授权。
[0031]
在一个可能的实施方式中,所述授权实施单元还包括软件启动单元,所述软件启动单元用于正常启动软件并进入正常使用。
[0032]
在一个可能的实施方式中,所述装置还包括上传处理单元,所述上传处理单元用于当使用者需要上传授权的软件到云端,验证使用者的密码之后,将加密授权的软件密文还原为明文,将明文上传至云端。
[0033]
在一个可能的实施方式中,所述装置还包括下载处理单元,所述下载处理单元用于当使用者从云端下载授权的软件时,从所述明文的内容中获取使用者密码,对软件进行加密并存储于本地端。
[0034]
在第三方面,本发明还提出了一种软件授权计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的软件授权程序,所述软件授权程序被所述处
理器执行时实现如上述任一项所述的软件授权方法。
[0035]
在第四方面,本发明还提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述任一项所述的软件授权方法。
[0036]
相比于现有技术,本发明的有益效果在于:采用本方案的软件授权方法,安全性好,能够以一个较好的方式进行授权操作,且软硬件开销小,无需投入硬件及其维护成本;其次,本方案授权信息等相关数据量较小,由加密产生的时间开销对授权过程影响较小。
[0037]
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
[0038]
图1是本发明一种软件授权方法的具体实施例流程示意图;
[0039]
图2是本发明一种软件授权装置的具体实施例的框架示意图;
[0040]
图3是本发明一种软件授权计算机设备的具体实施例的框架示意图;
[0041]
图4是本发明一种非临时性计算机可读存储介质的具体实施例的框架示意图。
具体实施方式
[0042]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043]
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0044]
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
[0045]
如图1所示的方法流程图,为本发明实施例一,一种软件授权方法的示意图,包括以下步骤:
[0046]
步骤s1,将用于授权的激活码放入软件的发布包中;
[0047]
步骤s2,对软件进行加密并且设置对软件的试用时间;
[0048]
步骤s3,判断并确认软件被启动后,从软件的初始启动时间开始计算软件的已使用时间;
[0049]
步骤s4,当已使用时间达到试用时间时,提示使用者进行重新授权操作;
[0050]
步骤s5,检测并确认使用者输入的激活码有效,更新使用者输入的激活码的使用权限,完成对软件的授权。
[0051]
作为一个可选的实施方式,发布包为二进制发布包。
[0052]
在可选的实施方式中,所述步骤s5之后还包括正常启动软件并进入正常使用。
[0053]
在其他可选的实施方式中,当使用者需要上传授权的软件到云端,验证使用者的密码之后,将加密授权的软件密文还原为明文,将明文上传至云端。
[0054]
在其他可选的实施方式中,当使用者从云端下载授权的软件时,从所述明文的内
容中获取使用者密码,对软件进行加密并存储于本地端。
[0055]
其中,所述软件指代一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为系统软件、应用软件和介于这两者之间的中间件。在本方案中提及的软件并不只是包括可以在计算机(这里的计算机是指广义的计算机)上运行的电脑程序,与这些电脑程序相关的文档一般也被应当认为是软件的一部分。可理解本方案中软件就是程序或文档以及程序加文档的集合体。
[0056]
作为本发明的实施例二,如图2所示,本发明还提出了一种软件授权装置,包括以下单元;
[0057]
激活码嵌入单元100,用于将用于授权的激活码放入软件的发布包中;
[0058]
软件加密单元200,用于对软件进行加密并且设置对软件的试用时间;
[0059]
时间计算单元300,用于判断并确认软件被启动后,从软件的初始启动时间开始计算软件的已使用时间;
[0060]
授权提示单元400,用于当已使用时间达到试用时间时,提示使用者进行重新授权操作;
[0061]
授权实施单元500,用于检测并确认使用者输入的激活码有效,更新使用者输入的激活码的使用权限,完成对软件的授权。
[0062]
其中,激活码嵌入单元100、软件加密单元200、时间计算单元300、授权提示单元400、授权实施单元500分别与上述步骤s1、s2、s3、s4、s5相对应,本装置旨在利用五个单元实施步骤s1-s5。
[0063]
作为可选的实施方式,所述软件加密单元200、授权提示单元400均包括用于使用者操作的界面,使用者可通过界面输入信息以便于完成授权操作。
[0064]
作为一个较佳的实施方式,所述授权实施单元500还包括软件启动单元501,所述软件启动单元501用于正常启动软件并进入正常使用。
[0065]
作为一个较佳的实施方式,所述装置还包括上传处理单元600,所述上传处理单元600用于当使用者需要上传授权的软件到云端,验证使用者的密码之后,将加密授权的软件密文还原为明文,将明文上传至云端。
[0066]
作为一个较佳的实施方式,所述装置还包括下载处理单元700,所述下载处理单元700用于当使用者从云端下载授权的软件时,从所述明文的内容中获取使用者密码,对软件进行加密并存储于本地端。
[0067]
其中,所述上传处理单元600、下载处理单元700在使用者启动上传或下载的时候触发,旨在对软件实施不同的操作,以实现相对应的数据安全效果,图示的连接关系仅作为一个示例,研发人员可根据需要对其连接关系做出调整。
[0068]
作为本发明的实施例三,如图3所示,本发明提出了一种软件授权计算机设备,包括存储器800、处理器900及存储在所述存储器800上并可在所述处理器900上运行的软件授权程序,所述软件授权程序被所述处理器900执行时实现如上述任一项所述的软件授权方法。
[0069]
其中,所述存储器800可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其它类型的静态存储设备,随机存取存储器(random access memory,ram))或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器
(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器可以是独立存在,通过通信总线与处理器相连接。存储器也可以和处理器集成在一起。
[0070]
作为本发明的实施例四,如图4所示,本发明提出了一种非临时性计算机可读存储介质,其上存储有计算机程序1000,该程序被处理器执行时实现如上述任一项所述的软件授权方法。
[0071]
所述存储介质可以是前述服务器的内部存储单元,例如服务器的硬盘或内存。所述存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。
[0072]
现以ui文件的加密、授权、上传以及下载作为应用场景,作为本方案的实施例五:
[0073]
一、ui授权
[0074]
1.构建授权内容:
[0075][0076][0077]
其中,start_date:开始授权时间,格式yyyy-mm-dd,如2019-10-25;
[0078]
days:授权使用天数,数值类型。
[0079]
auth_code:6到24个字母或数字的授权码。
[0080]
2.使用sec_fillencrypted函数对授权内容加密,加密完成后构建授权信息:
[0081][0082]
pwd:6到24个字母或数字的用户密码,用于加密整个ui文件。
[0083]
key:sec_fillencrypted函数加密授权信息后输出的密文。
[0084]
3.将加密信息插入ui文件,当用户保存当前ui文件时,ui文件执行文件(包括但不限于自主研发软件)会根据文件中是否存在加密信息来对整个文件加密:
[0085]
3.1.获取加密信息里的pwd字段和key字段,如果这两个值都不为空才进行加密;
[0086]
3.2.创建xml文件,新建根节点ui节点,并设置其字段password值为用户密码;
[0087]
3.3.生成password的md5值,将password和md5拼接转换成utf8表示的数组,并对此数组也取md5值设为aes加密的key;
[0088]
3.4.使用aes128加密整个ui文件,aes的key取值为3.3生成的key的16进制表示,aes的chain取值为password的md5值;
[0089]
3.5.将aes加密后的数据转换为base64;
[0090]
3.6.新建encryptiondata节点保存3.5生成的数据,用此节点作为ui节点的子节点插入xml中;
[0091]
3.7.将内存中的xml写入文件,并将文件后缀改为.pui。
[0092]
至此整个授权加密完成,打开加密的ui文件将是上面的逆过程。
[0093]
二、授权操作
[0094]
1.打开ui文件
[0095]
2.点击工具栏中的授权图标(此步骤也可为试用时间到期,自动弹出,使用者再进行操作)
[0096]
3.在弹出的对话框里输入授权信息及密码
[0097]
4.点击对话框里的“生成密文”按钮即可完成授权ui文件
[0098]
三、上传授权的ui文件到云端
[0099]
1.当用户要上传加密授权的ui到云端,必须提供密码;
[0100]
2.ui文件执行文件(包括但不限于自主研发软件)使用用户提供的密码,先把ui密文还原为明文,然后上传明文给云端(ui授权逆过程)。
[0101]
四、从云端下载授权的ui文件
[0102]
1.从云端获取ui文件内容是以明文形式获取;
[0103]
2.从明文ui内容中获取用户密码,然后对ui文件进行aes128加密存储至本地磁盘(与存储授权ui文件一样的过程)。
[0104]
需要说明的是,所属领域的技术人员可以清楚地了解到,上述装置、计算机设备和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
[0105]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0106]
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如一个以上单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
[0107]
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。
[0108]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0109]
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
[0110]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1