本发明涉及通信技术领域,特别是涉及一种软件授权使用的方法、设备及存储介质。
背景技术
随着终端技术的飞速发展,智能操作系统(例如android)已经不再仅限搭载于手机、平板电脑等设备,智能机顶盒也开始进行搭载,以便为人们提供更丰富的节目内容。而随着硬件的飞速发展,终端在硬件方面的投入成本越来越低,丰富的软件应用正在成为凸显产品的重要部分。软件在功能和设计上越来越丰富,开发软件应用所付出的努力也越来越大。而软件应用的丰富随之带来了软件安全性问题,如何防止软件未被授权使用则愈发重要。
技术实现要素:
本发明提供一种软件授权使用的方法、设备及存储介质,用以解决现有技术中软件未被授权使用的问题。
为实现上述发明目的,本发明采用下述的技术方案:
依据本发明的与一个方面,提供一种软件授权使用的方法,包括:
获取设备的特征标识;
根据所述特征标识生成软件使用验证标识;
从所述设备中读取软件使用许可标识,并根据所述软件使用验证标识对所述软件使用许可标识进行校验,当校验通过时,则允许运行所述软件。
可选的,所述特征标识包括设备的硬件标识和身份标识。
可选的,所述根据所述特征标识生成所述软件使用验证标识,包括:
根据预设的加密算法对所述特征标识加密生成所述软件使用验证标识。
可选的,所述加密算法包括安全散列算法sha256、公钥加密算法rsa以及base64加密算法中的一种或者多种。
可选的,所述从所述设备中读取所述软件使用许可标识,包括:
从所述设备的存储区域中读取所述软件使用许可标识;其中,所述软件使用许可标识为外部装置根据所述加密算法对所述特征标识加密生成,并预先存储至所述存储区域中。
可选的,所述软件使用许可标识还携带有软件使用的有效期;
所述根据所述软件使用验证标识对所述软件使用许可标识进行校验,包括:
判断所述当前时间是否在所述有效期之内;
当判定在所述有效期之内时,再根据所述验证标识对所述许可标识中加密的特征标识进行校验。
可选的,所述方法还包括:
当判定不在所述有效期之内时,则禁止运行所述软件。
可选的,所述方法还包括:
当根据所述验证标识对所述许可标识校验不通过时,则禁止运行所述软件。
依据本发明的一个方面,提供一种软件授权使用的设备,包括:存储器和处理器;其中,所述存储器中存储有软件授权使用的程序,当所述软件授权使用的程序被所述处理器执行时,以实现上述所述方法中的步骤。
依据本发明的一个方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有软件授权使用的程序,当所述软件授权使用的程序被所述处理器执行时,以实现上述所述方法中的步骤。
本发明有益效果如下:
本发明所提供的软件授权使用的方法、设备及存储介质,在本地对软件授权情况进行验证,在整个验证过程无需与服务器侧进行交互,有效减少服务器的处理负荷,同时采用不可逆加密算法进行验证有效提高了验证的安全性。基于此,通过本发明使得软件只在被授权的硬件设备上面正常运行,未被授权的硬件设备则禁止运行使用,很好的保护了软件开发者的权利。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例或现有中的方案,下面将对实施例或现有描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的软件授权使用方法的流程图;
图2为本发明一具体实施例中license的生成及校验的流程图;
图3为本发明一具体实施例中license生成的流程图;
图4为本发明一具体实施例中license生成装置加密的流程图;
图5为本发明一具体实施例中license发放的具体流程图;
图6为本发明一具体实施例中license校验的具体流程图;
图7为本发明实施例所提供的软件授权使用设备的原理框图。
具体实施方式
以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
本发明实施例所提供的软件授权使用的方法其思路在于,软件下载至设备后,在本地对软件授权情况进行验证,在整个验证过程无需与服务器侧进行交互,只需根据设备的唯一特征标识经过预设算法计算后再与设备中存储的许可标识是否匹配来确定应用软件是否授权运行。下面结合附图进行详细说明。
方法实施例
如图1所示,本发明实施例所提供的软件授权使用的方法,包括如下步骤:
步骤101,获取设备的特征标识。
在本步骤中,设备可以诸如手机、平板电脑、笔记本电脑、掌上电脑等终端,还可以为智能机顶盒、台式计算机等终端。
特征标识是指能够表示设备唯一的标识信息。可选的,该特征标识包括设备的硬件标识和身份标识。硬件标识主要是指设备的mac地址,而身份标识可以为该设备的生产厂商的标识或者设备的序列号等信息。例如,设备的imei(internationalmobileequipmentidentity,国际移动设备身份码),或者android系统为开发者提供的用于标识设备的串号(device_id)。由于这些标识信息都是设备自身所携带的信息,因此在获取设备的特征标识时,可以直接通过设备本身的相关接口获取即可,无需借助其他配置器件(例如网卡)等信息来获取。
步骤102,根据特征标识生成软件使用验证标识。
在该步骤中,在根据特征标识生成软件使用验证标识时,通过预设的加密算法实现。这里的加密算法包括安全散列算法sha256、公钥加密算法rsa以及base64加密算法中的一种或者多种。
步骤103,从设备中读取软件使用许可标识,并根据软件使用验证标识对软件使用许可标识进行校验,当校验通过时,则允许软件运行。
在该步骤中,从设备中读取软件使用许可标识,需从设备的存储区域中读取软件使用许可标识。这里,软件使用许可标识为外部装置根据加密算法对特征标识加密生成,并预先存储至存储区域中。
在根据软件使用验证标识对软件使用许可标识进行校验时,主要是判断两个标识是否相同:当相同,则表示校验通过,进而允许运行软件;当两个标识不相同时,则表示校验失败,则禁止运行该软件。
可知,通过根据设备唯一的特征标识生成的软件使用许可标识进行验证,可以有效确保软件授权使用的唯一性,有效避免使用非法的软件使用许可标识的情形。
其中,可选的,软件使用许可标识中除了上述的加密特征标识之外,还包括软件使用的有效期。为了确认设备中的软件使用许可标识是否在有效期内,在对软件使用许可标识进行校验时,包括如下:
获取当前时间,判断当前是否是否在许可标识中携带的有效期内:
当在该有效期内时,则表示该软件使用许可标识为有效信息,进一步根据软件使用验证标识校验软件使用许可标识中加密的特征标识;
当不在该有效期内时,则判定该软件使用许可标识为非法标识,表示该软件使用许可标识已经失效,并禁止运行该软件。
基于上述可知,本发明在设备本地即可完全授权认证,无需与服务器侧进行数据交互,同时只采用加密算法而非解密算法,使得校验过程是不可逆的,有效提高了验证的安全性。基于此,通过本发明使得软件只在被授权的硬件设备上面正常运行,未被授权的硬件设备则禁止运行使用,很好的保护了软件开发者的权利。
下面结合具体实施例对本发明的技术内容做进一步的详细说明。本实施例中的设备以android智能机顶盒为例进,来说明具体实施过程。在该实施例中除智能机顶盒之外,还包括外部装置,这里的外部装置包括license(软件使用许可标识)生成装置和license发放装置。当然,两个装置也可以通过合成的方式位于一个装置中,这里不做限定。如图2所示本发明方法的实施用例流程具体包括以下步骤:
步骤201,license生成装置将mac|deviceid通过加密算法生成license。
其中,license生成装置采用license生成工具。mac|deviceid为硬件唯一标识mac和设备id(deviceid)组装的特征标识。mac|deviceid的原始数据以excel存储,最终生成的license数据也以excel存储。
license生成装置生成license的具体过程,如图3所示,包括:步骤301,从数据中读取mac|deviceid;步骤302,将mac|deviceid进行算法加密生成license;步骤303,存储license数据。
在该实施例中采用的算法包括安全散列算法sha256、公钥加密算法rsa和base64算法生成。具体地,参见图4,步骤401,设定k1=mac|deviceid。步骤402,对k1进行sha256加密生成k2,k2=sha256(k1);步骤403,对k2进行rsa加密生成k3,k3=rsa(k2,rsa.pub);步骤404,对k3进行base64加密生成license,licens=base64encode(k3)。基于此,通过sha256、rsa和base64三种算法相结合的方式,可以有效提高数据的安全性。
步骤202,license发放装置读取license,并写入到设备中。
在该步骤中,如图5所示,license发放装置的发放流程,可在设备的生成环节完成,将读取的license写入至设备中。
步骤203,设备读取license,软件通过校验license确定是否被授权,是允许运行,否则禁止运行。
如图6所示,软件下载至本地后,根据预设的校验程序来验证license的合法性。具体地,根据从设备中获取的mac|deviceid,经过图4描述的加密算法进行加密生成license1(软件使用验证标识),而后,根据license1和从设备中读取到的license进行校验,匹配则允许运行软件,否则禁止运行。
基于上述可知,本发明在验证时,在应用软件层对设备唯一特征标识进行加密后的值和license进行校验匹配;在加密算法上采用sha256和rsa双重加密,并最终通过base64转码,加密算法的不可逆性,有效提高了校验的安全性,最终提高用户体验;另外,本发明不依赖网络环境及许可标识发布服务器,验证过程也无需与服务器进行交互,有效减轻服务器侧的处理负荷。
设备实施例
根据本发明的实施例,提供了一种软件授权使用的设备,用于实现上述实施例中的方法。如图7所示。该设备括处理器72以及存储有处理器72可执行指令的存储器71。其中,处理器72可以是通用处理器,例如中央处理器(centralprocessingunit,cpu),还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic),或者是被配置成实施本发明实施例的一个或多个集成电路。存储器71,用于存储程序代码,并将该程序代码传输给cpu。存储器71可以包括易失性存储器(volatilememory),例如随机存取存储器(randomaccessmemory,ram);存储器71也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-onlymemory,rom)、快闪存储器(flashmemory)、硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器71还可以包括上述种类的存储器的组合。
具体地,本发明实施例提供一种软件授权使用的设备,包括存储器71和处理器72;其中,存储器71中存储有软件授权使用的程序,当软件授权使用的程序被处理器72执行时,以实现如下步骤:
获取设备的特征标识;
根据特征标识生成软件使用验证标识;
从设备中读取软件使用许可标识,并根据软件使用验证标识对软件使用许可标识进行校验,当校验通过时,则允许运行软件。
其中,可选的,特征标识包括设备的硬件标识和身份标识。
当软件授权使用的程序被处理器72执行时,以实现如下步骤:
根据预设的加密算法对特征标识加密生成软件使用验证标识。
其中,加密算法包括安全散列算法sha277、公钥加密算法rsa以及base74加密算法中的一种或者多种。
可选的,当软件授权使用的程序被处理器72执行时,以实现如下步骤:
从所述设备的存储区域中读取所述软件使用许可标识;其中,所述软件使用许可标识为外部装置根据所述加密算法对所述特征标识加密生成,并预先存储至所述存储区域中。
其中,可选的,软件使用许可标识还携带有软件使用的有效期;
当软件授权使用的程序被处理器72执行时,以实现如下步骤:
判断当前时间是否在有效期之内;
当在有效期之内时,再根据软件使用验证标识对软件使用许可标识中加密的特征标识进行校验。
当软件授权使用的程序被处理器72执行时,还用于以实现如下步骤:
当根据软件使用验证标识对软件使用许可标识校验不通过时,则禁止运行软件。
存储介质实施例
本发明实施例还提供了一种计算机可读存储介质。这里的计算机可读存储介质存储有一个或者多个程序。其中,计算机可读存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。当计算机可读存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例中所提供的一种软件授权使用的方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
虽然通过实施例描述了本申请,本领域的技术人员知道,本申请有许多变形和变化而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。