CN114925336A - 一种激活软件的方法及系统 - Google Patents
一种激活软件的方法及系统 Download PDFInfo
- Publication number
- CN114925336A CN114925336A CN202210488696.1A CN202210488696A CN114925336A CN 114925336 A CN114925336 A CN 114925336A CN 202210488696 A CN202210488696 A CN 202210488696A CN 114925336 A CN114925336 A CN 114925336A
- Authority
- CN
- China
- Prior art keywords
- activation
- software
- file
- activation file
- computing device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 230000003213 activating effect Effects 0.000 title claims abstract description 36
- 230000004913 activation Effects 0.000 claims abstract description 206
- 238000013475 authorization Methods 0.000 claims abstract description 92
- 238000012795 verification Methods 0.000 claims abstract description 41
- 238000001994 activation Methods 0.000 description 130
- 238000004891 communication Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000004519 manufacturing process Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 239000000047 product Substances 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007723 transport mechanism Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/105—Arrangements for software license management or administration, e.g. for managing licenses at corporate level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种激活软件的方法及系统,方法包括:获取第一用户识别码和授权存储模块;启动激活程序,并获取授权存储模块中的信息,得到加密后的第一激活文件;通过公钥对加密后的第一激活文件进行解密,得到第一激活文件;验证用户识别码;如果验证成功,则校验第一激活文件中的内容;如果全部校验成功,则通过激活程序修改软件的激活状态;如果存在校验失败,则软件激活失败;如果验证失败,则软件激活失败。根据本发明的技术方案,提高了授权的安全性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种激活软件的方法、系统、计算设备及可读存储介质。
背景技术
目前,在常见的软件激活方法中,例如Windows 10操作系统用户需要使用数字许可证或产品密钥对操作系统进行激活,若不具备这两者,则无法对操作系统进行激活。常见的软件激活方法通常会采用联网授权的方式,即序列号授权或者序列号绑定计算机硬件信息,软件厂商在进行联网授权后,一般会将授权信息以文件形式保存在操作系统中。但现有技术的方案一方面不适用于离线激活,无法在断网情况下完成软件授权,另一方面激活码可能被任意复制,导致非法授权。
为此,需要一种激活软件的方法,以解决现有技术方案中存在的问题。
发明内容
为此,本发明提供一种激活软件的方法、计算设备及可读存储介质,以解决或至少缓解上面存在的问题。
根据本发明的第一个方面,提供一种激活软件的方法,在第一计算设备中执行,方法包括:获取第一用户识别码和授权存储模块;启动激活程序,并获取授权存储模块中的信息,得到加密后的第一激活文件;通过公钥对加密后的第一激活文件进行解密,得到第一激活文件;验证用户识别码;如果验证成功,则校验第一激活文件中的内容;如果全部校验成功,则通过激活程序修改软件的激活状态;如果存在校验失败,则软件激活失败;如果验证失败,则软件激活失败。
可选地,在根据本发明的激活软件的方法中,验证用户识别码的步骤,包括:获取第一激活文件中的第二用户识别码;将第一用户识别码与第二用户识别码进行比对验证;若第一用户识别码与第二用户识别码相同,则验证成功;否则,验证失败。
可选地,在根据本发明的激活软件的方法中,校验第一激活文件中的内容的步骤,包括:获取第一激活文件中的第二激活文件和第一哈希值;计算第二激活文件的第二哈希值;如果第一哈希值与第二哈希值相同,则校验成功;否则,校验失败。
可选地,在根据本发明的激活软件的方法中,校验第一激活文件中的内容的步骤,还包括:获取第一计算设备的系统时间;将系统时间与第一激活文件中的权限起始时间进行比对;如果系统时间晚于权限起始时间,则校验成功;否则,校验失败。
可选地,在根据本发明的激活软件的方法中,校验第一激活文件中的内容的步骤,还包括:获取第一计算设备中待激活软件的第一软件信息;将待激活软件的第一软件信息与第一激活文件中的第二软件信息进行比对;如果待激活软件的第一软件信息与第二软件信息相同,则校验成功;否则,校验失败。
可选地,在根据本发明的激活软件的方法中,授权存储模块还包括已激活设备文件,其中,校验第一激活文件中的内容的步骤,还包括:获取授权存储模块中的已激活设备文件,已激活设备文件包括已激活软件所对应的计算设备的硬件信息;如果已激活设备文件中包括的已激活软件的数量小于第一激活文件中的授权数量,或第一计算设备的硬件信息存在于已激活设备文件且第一计算设备的系统时间在第一激活文件中的权限结束时间之前,则校验成功;否则,校验失败。
可选地,在根据本发明的激活软件的方法中,在通过激活程序修改软件的激活状态的步骤之后,还包括:将第一计算设备的硬件信息写入已激活设备文件中。
可选地,在根据本发明的激活软件的方法中,第一用户识别码和授权存储模块通过离线方式从第二计算设备获取。
可选地,在根据本发明的激活软件的方法中,第一用户识别码和授权存储模块在第二计算设备中通过如下方式生成:获取第三激活文件,第三激活文件包括第一计算设备的第一用户识别码、第三软件信息、授权数量、权限起始时间、和/或权限结束时间;计算第三激活文件的第三哈希值,并将第三哈希值附加到第三激活文件中,得到第四激活文件;通过私钥对第四激活文件进行加密,得到加密后的第四激活文件;将加密后的第四激活文件写入授权存储模块。
根据本发明的第二个方面,提供一种激活软件的方法,在第二计算设备中执行,方法包括:获取第三激活文件,第三激活文件包括第一计算设备的第一用户识别码、第三软件信息、授权数量、权限起始时间、和/或权限结束时间;计算第三激活文件的第三哈希值,并将第三哈希值附加到第三激活文件中,得到第四激活文件;通过私钥对第四激活文件进行加密,得到加密后的第四激活文件;将加密后的第四激活文件写入授权存储模块,以便第一计算设备基于第一用户识别码和授权存储模块对软件进行激活。
根据本发明的第三个方面,提供一种激活软件的系统,系统包括:第一计算设备,适于获取第一用户识别码和授权存储模块,适于启动激活程序,并获取授权存储模块中的信息,得到加密后的第一激活文件,适于通过公钥对加密后的第一激活文件进行解密,得到第一激活文件,适于验证用户识别码,如果用户识别码验证成功,则校验第一激活文件中的内容,如果第一激活文件中的内容全部校验成功,则通过激活程序修改软件的激活状态,如果校验第一激活文件中的内容时存在校验失败,则软件激活失败,如果用户识别码验证失败,则软件激活失败;第二计算设备,适于获取第三激活文件,第三激活文件包括第一计算设备的第一用户识别码、第三软件信息、授权数量、权限起始时间、和/或权限结束时间,适于计算第三激活文件的第三哈希值,并将第三哈希值附加到第三激活文件中,得到第四激活文件,适于通过私钥对第四激活文件进行加密,得到加密后的第四激活文件,还适于将加密后的第四激活文件写入授权存储模块。
根据本发明的第四个方面,提供一种计算设备,包括:至少一个处理器;存储器,存储有程序指令,其中,程序指令被配置为适于由上述至少一个处理器执行,程序指令包括用于执行如上所述的方法的指令。
根据本发明的第五个方面,提供一种存储有程序指令的可读存储介质,当该程序指令被计算设备读取并执行时,使得该计算设备执行如上所述的方法。
根据本发明的技术方案,实现了第一计算设备通过第一用户识别码和授权存储模块对软件进行激活。第一计算设备通过授权存储模块和第一用户识别码对授权存储模块中的内容进行验证,通过用户识别码的验证机制,只有验证通过的用户才可以成功激活,实现了有针对性地向特定用户授权,提高授权的安全性,避免授权存储模块的滥用。通过对授权存储模块中的各个内容进行验证,只有当全部内容校验成功,才对软件进行激活,保证了在各个条件均满足的情况下才允许用户对软件进行激活,提高了授权的安全性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的计算设备100的结构框图;
图2示出了根据本发明一个实施例的激活软件的系统200的示意图;
图3示出了根据本发明一个实施例的激活软件的方法300的流程图;以及
图4示出了根据本发明一个实施例的激活软件的方法400的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明的激活软件的方法在计算设备中执行。计算设备可以是任意具有存储和计算能力的设备,其例如可以实现为服务器、工作站等,也可以实现为桌面计算机、笔记本计算机等个人配置的计算机,或者实现为手机、平板电脑、智能可穿戴设备、物联网设备等终端设备,但不限于此。
图1示出了根据本发明一个实施例的计算设备100的结构框图。需要说明的是,图1所示的计算设备100仅为一个示例,在实践中,用于实施本发明的激活软件的方法的计算设备可以是任意型号的设备,其硬件配置情况可以与图1所示的计算设备100相同,也可以与图1所示的计算设备100不同。实践中用于实施本发明的激活软件的方法的计算设备可以对图1所示的计算设备100的硬件组件进行增加或删减,本发明对计算设备的具体硬件配置情况不做限制。
如图1所示,在基本的配置102中,计算设备100典型地包括系统存储器106和一个或者多个处理器104。存储器总线108可以用于在处理器104和系统存储器106之间的通信。
取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器104可以包括诸如一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器104一起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。
取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。计算设备中的物理内存通常指的是易失性存储器RAM,磁盘中的数据需要加载至物理内存中才能够被处理器104读取。系统存储器106可以包括操作系统120、一个或者多个应用122以及程序数据124。在一些实施方式中,应用122可以布置为在操作系统上由一个或多个处理器104利用程序数据124执行指令。操作系统120例如可以是Linux、Windows等,其包括用于处理基本系统服务以及执行依赖于硬件的任务的程序指令。应用122包括用于实现各种用户期望的功能的程序指令,应用122例如可以是浏览器、即时通讯软件、软件开发工具(例如集成开发环境IDE、编译器等)等,但不限于此。当应用122被安装到计算设备100中时,可以向操作系统120添加驱动模块。
在计算设备100启动运行时,处理器104会从存储器106中读取操作系统120的程序指令并执行。应用122运行在操作系统120之上,利用操作系统120以及底层硬件提供的接口来实现各种用户期望的功能。当用户启动应用122时,应用122会加载至存储器106中,处理器104从存储器106中读取并执行应用122的程序指令。
计算设备100还包括储存设备132,储存设备132包括可移除储存器136和不可移除储存器138,可移除储存器136和不可移除储存器138均与储存接口总线134连接。
计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外设接口144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例的输出设备142包括图形处理单元148和音频处理单元150。它们可以被配置为有助于经由一个或者多个A/V端口152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于经由一个或者多个I/O端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一个或者多个其他计算设备162通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。在根据本发明的计算设备100中,程序数据124包括用于执行本发明的激活软件的方法300或400的指令。
图2示出了根据本发明一个实施例的激活软件的系统200的示意图。如图2所示,系统200包括授权生成模块210、授权存储模块220、和激活模块230。
授权生成模块210部署在第二计算设备中,第二计算设备例如为软件厂商或者代理商的授权生产环境,用于执行根据本发明的方法300,为不同软件用户生成专用的激活文件,并将激活文件写入授权存储模块220。授权生产模块210还生成用户识别码,通过通道1发送至软件用户,用于软件用户在激活软件时验证用户信息,通道1可以是离线通道,例如通过线下人为告知、短信、电话等安全通道传递用户识别码,也可以通过在线方式,例如电子邮件、通信软件等加密传递方式传递用户识别码。
由授权生成模块210生成的授权存储模块220,作为授权文件的存储载体,适于通过通道2从软件厂商处发送至软件用户,以便软件用户将授权存储模块220应用与用户的软件授权环境中,通道2通常是离线通道,例如通过线下人为运输等安全通道传递授权存储模块。为保证激活文件的完整性,授权生成模块210具有存储功能和断电数据保护功能。
软件用户在获取到授权生成模块210生成的授权存储模块220后,将授权存储模块应用于第一计算设备的激活模块230,第一计算设备例如为用户的待激活软件所在的计算设备,以便激活模块230执行根据本发明的方法400,与授权存储模块进行交互,完成对软件的激活。
图3示出了根据本发明一个实施例的激活软件的方法300的流程图。方法300为授权生产流程,用于生成授权存储模块,在第二计算设备(如上文所述的计算设备100)中执行,第二计算设备例如可以是软件厂商或代理商执行软件授权操作、生成授权存储模块的计算设备,也可以是安装有授权生成软件的计算设备,但不限于此。软件例如可以是操作系统、各种应用等等,本发明对此不进行限制。
在一种实施例中,在方法300中,需要预先部署授权生成软件,并能够正常运行,以构建授权生产环境。需要基于非对称加密算法生成一对私钥和公钥,用于后续对激活文件进行加密和解密,其中,私钥部署在授权生产环境,公钥已经集成在软件发布版本中,并且在激活环节中激活模块可以对公钥进行调用。还需要获取用户的生产要素(生产要素为下文所述的第三激活文件所包括的内容),以便在软件厂商的授权生产环境中,管理员可以通过部署的授权生产软件的操作界面,输入生产要素,生成用户识别码和加密后的激活文件,最后将加密后的激活文件写入到授权存储模块中。用户识别码可以在激活软件的方法400中使用,与授权存储模块共同组成了离线激活软件过程中必不可少的内容,用于校验授权存储模块中所存储的激活文件是否属于用户识别码所对应的用户。
方法300始于步骤S310。在步骤S310中,获取第三激活文件,其中,第三激活文件包括第一计算设备的第一用户识别码、第三软件信息、授权数量、权限起始时间、和/或权限结束时间。
其中,第一用户识别码由user表示,用于对软件用户进行标识,例如可以是用户信息、用户身份标识号、ID等,第一用户识别码通常是独一无二的,可以标识一个特定的用户。第一软件信息可以由product表示,为第一计算设备的待激活软件的信息,例如可以包括软件的类型、版本号信息。授权数量由totalnum表示,用户标识最大可激活软件的数量。权限起始时间由starttime表示,将时间信息写入第三激活文件中,用于标识权限的开始时间,权限起始时间例如可以设定为在执行这一步骤时当下的时间、也可以设定为软件权限生效的起始时间,具体可以包括年、月、日、时、分、秒等信息。权限结束时间由endtime表示,用于标识权限的结束时间,具体可以包括年、月、日、时、分、秒等信息,可以采用一个特定的标识符用于标识权限永久有效,例如采用标识符00000000对权限结束时间进行标识,表示永久有效,当然也可以采用其他的标识符来表示权限永久有效,本发明对此不做限制。
第三激活文件是将上述第一计算设备的第一用户识别码、第三软件信息、授权数量、权限起始时间、和/或权限结束时间,基于特定的格式,生成文件。
下面是一个示例性的第三激活文件:
user:zhangsan
product:UniontechOS Linux release 20
totalnum:5
starttime:20210818
endtime:00000000
在该示例性的第三激活文件中,第一用户识别码为zhangsan。第三软件信息为UniontechOS Linux release 20,其中包括软件类型为UniontechOS Linux,版本号为20。授权数量为5,即允许授权5台设备用于激活软件。权限起始时间为20210818,表示软件权限自2021年08月18日起生效。权限结束时间由标识符00000000表示,该标识符表示软件权限永久有效。
随后,在步骤S320中,计算第三激活文件的第三哈希值,并将第三哈希值附加到第三激活文件中,得到第四激活文件。
其中,计算第三哈希值的哈希算法可以采用例如SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512,也可以采用MD5、sm3等,可以采用任一种哈希算法,对此不做特殊限制。采用哈希算法计算得到第三的哈希值附加到第三激活文件中,可以保证第三激活文件的完整性,当用户需要对第三激活文件进行验证时,只需要采用同样的哈希算法重新计算一次哈希值,再将重新计算得到的哈希值与第三激活文件中的第三哈希值进行比对,即可得知第三激活文件是否完整,提升了第三激活文件的可靠性。
然后,将计算得到的第三哈希值附加到第三激活文件中,得到第四激活文件,下面是一个示例性的第四激活文件:
user:zhangsan
product:UniontechOS Linux release 20
totalnum:5
starttime:20210818
endtime:00000000
hash:7ab0ec7d64f15ea8cbecf8930ebbdbad
在该示例性的第四激活文件中,由其中的第三激活文件计算得到的第三哈希值由hash表示,具体值为7ab0ec7d64f15ea8cbecf8930ebbdbad,附加在第三激活文件中,从而形成第四激活文件。
随后,在步骤S330中,通过私钥对第四激活文件进行加密,得到加密后的第四激活文件。
在这一步骤中,通过调用系统接口基于上文的非对称加密算法得到的一对私钥和公钥中的私钥对第四激活文件进行加密。
随后,在步骤S340中,将加密后的第四激活文件写入授权存储模块,以便第一计算设备执行方法400的步骤,实现基于第一用户识别码和授权存储模块对软件进行激活。
授权存储模块是一种具有存储功能的介质,可以是u盘、sd卡、光盘、移动硬盘、也可以是手机等具有存储功能的移动终端,本发明对于授权存储模块的选择不做具体限制。通过由第二计算设备处传递写入了第四激活文件的授权存储模块到第一计算设备处,第一计算设备无需联网或连接到第二计算设备端即可实现离线方式的软件激活,只有同时获取了第一用户识别码和授权存储模块的用户才可以对软件进行授权,保障了软件激活不会被滥用,提升了软件授权的安全性,也保障了软件厂商的权益。
在软件厂商端基于上述方法300得到了第一用户识别码和与其对应的授权存储模块后,将第一用户识别码和授权存储模块发送至用户,以便根据下述方法400对待激活软件进行离线激活。
图4示出了根据本发明一个实施例的激活软件的方法400的流程图。方法400适于在第一计算设备(如前述计算设备100)中执行,方法400始于步骤S410。
在步骤S410中,获取通过本发明的激活软件的方法300生成的第一用户识别码和授权存储模块。其中,第一用户识别码可以通过系统200中的通道1获取,授权存储模块可以通过系统200中的通道2获取。
随后,在步骤S420中,启动激活程序,并获取授权存储模块中的信息,得到加密后的第一激活文件。
根据本发明的实施例,第一计算设备中安装有待激活的软件,通常可以通过打开第一计算设备中已安装的待激活软件或将授权存储模块挂载到第一计算设备,来启动激活程序。
随后,在步骤S430中,通过公钥对加密后的第一激活文件进行解密,得到第一激活文件。
在这一步骤中,激活程序使用软件内置的公钥对加密后的第一激活文件进行解密。
随后,在步骤S440中,验证用户识别码。
根据一种实施例,解析解密后得到的第一激活文件,可以得到第一激活文件中user字段对应的用户识别码,即第二用户识别码。这里,第一激活文件类似于上文所述的第四激活文件,第一激活文件中包括第二激活文件(第二激活文件中包括有第一计算设备的第二用户识别码、第二软件信息、授权数量、权限起始时间、和/或权限结束时间),以及根据第二激活文件生成的第一哈希值。
在得到第二用户识别码后,将第一用户识别码与第二用户识别码进行比对验证。若第一用户识别码与第二用户识别码相同,则验证成功,则进入步骤S450,继续进行后续的激活流程;否则,验证失败,进入步骤S470,激活流程中断,软件激活失败,提示验证失败的消息。通过用户识别码的验证机制,保证了只有同时拿到第一用户识别码和其对应的授权存储模块的用户才能对软件进行激活,即使无关人员拿到授权存储模块也无法激活软件。
在验证用户识别码成功后,在步骤S450中,校验第一激活文件中的内容,即第一计算设备的第二用户识别码、第二软件信息、授权数量、权限起始时间、和/或权限结束时间以及第一哈希值。如果第一激活文件中包括的内容全部校验成功,则进入步骤S460,通过激活程序修改软件的激活状态,软件将由原本的未激活状态变为激活状态,软件激活成功。如果存在校验失败的情况,则进入步骤S470激活流程中断,软件激活失败,提示验证失败的消息。
可选地,在步骤S450中,对第一激活文件中包括的第二激活文件进行哈希值的校验,以确定第二激活文件内容的完整性。
根据本发明的一个实施例,首先计算第二激活文件的第二哈希值,然后第二哈希值与第一激活文件中的第一哈希值进行比较。如果第一哈希值与第二哈希值相同,则校验成功;如果第一哈希值与第二哈希值不同,则校验失败。
可选地,在步骤S450中,可以对第一激活文件中包括的第二软件信息进行校验。
根据本发明的一个实施例,获取第一计算设备中待激活软件的软件信息以及授权存储模块中的第一激活文件中的第二软件信息。将该待激活软件的第一软件信息与第一激活文件中的第二软件信息进行比对,校验该待激活软件的第一软件信息是否与第一激活文件中的第二软件信息一致。如果待激活软件的第一软件信息与第一激活文件中的第二软件信息相同,则校验成功;否则,校验失败。
可选地,在步骤S450中,还可以对第一激活文件中包括的授权数量进行校验。
根据本发明的一个实施例,授权存储模块还存储有已激活设备文件,已激活设备文件中包括已激活软件所对应的计算设备的硬件信息。已激活设备文件通常存储在授权存储模块的存储介质中的一个隐藏目录中,每一台已激活软件对应的计算设备的硬件信息都存储在隐藏目录下的一个文件中。这里的硬件信息用于标识计算设备已经激活了软件。文件可以以计算设备的主板号等不会经常变化的硬件信息命名。此处提到的硬件信息可以为主板、Bios、硬盘、cpu、网卡、内存、显卡、声卡等各自计算设备硬件其中至少一项的信息。
在对授权数量进行校验时,获取授权存储模块中的已激活设备文件。如果已激活设备文件中包括的已激活软件的数量小于第一激活文件中的授权数量,或第一计算设备的硬件信息存在于已激活设备文件且第一计算设备的系统时间在第一激活文件中的权限结束时间之前,则校验成功;否则,校验失败。例如,授权数量为5,即代表可激活的软件数量为5。此时需要查找已经激活的软件的数量,如果使用该授权存储模块激活的软件数量小于授权数量(totalnum)或者已经激活过的软件在权限结束时间(endtime)之前再次激活,都允许继续激活流程。
可选地,在步骤S450中,还可以对第一激活文件中包括的权限起始时间进行校验。
根据本发明的一个实施例,在这一步骤中,首先,获取待激活软件的系统时间,即获取第一计算设备的系统时间。然后将该系统时间与第一激活文件中的权限起始时间(starttime)进行比较,只有待激活软件的系统时间晚于starttime,才允许继续后面激活流程,即如果第一计算设备的系统时间晚于权限起始时间,则校验成功;否则,校验失败。
可选地,在步骤S450中,还可以对第一激活文件中包括的权限结束时间进行校验。
根据本发明的一个实施例,在这一步骤中,首先,获取待激活软件的系统时间,即获取第一计算设备的系统时间。然后将系统时间与第一激活文件中的权限结束时间(endtime)进行比较,只有待激活软件的系统时间早于endtime,才允许继续后面激活流程,即如果第一计算设备的系统时间早于权限结束时间,则校验成功;否则,校验失败。
根据本发明的实施例,在软件激活完成后,将已激活的第一计算设备的硬件信息写入到已激活设备文件中,存储在授权存储模块中,以便对已激活的软件对应的设备进行记录,这样当用户下次使用该授权存储模块激活设备中的软件时,可以判断设备是否已经存在激活过的软件,对于激活过的软件可以重复进行激活。
根据本发明的技术方案,实现了第一计算设备通过第一用户识别码和授权存储模块对软件进行激活。第一计算设备通过授权存储模块和第一用户识别码对授权存储模块中的内容进行验证,通过用户识别码的验证机制,只有验证通过的用户才可以成功激活,实现了有针对性地向特定用户授权,提高授权的安全性,避免授权存储模块的滥用。通过对授权存储模块中的各个内容进行验证,只有当全部内容校验成功,才对软件进行激活,保证了在各个条件均满足的情况下才允许用户对软件进行激活。
进一步地,通过哈希算法,保证了授权存储模块中激活文件的完整性,通过非对称加密机制,保证了激活文件的机密性和不可否认性。通过将已激活设备文件存储在授权存储模块中,保证了用户可以对激活过的软件进行再次激活。而且,通过第二计算设备将激活文件写入授权存储模块,实现第一计算设备在离线场景下对软件的激活问题。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,移动终端一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的激活软件的方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。
Claims (13)
1.一种激活软件的方法,在第一计算设备中执行,所述方法包括:
获取第一用户识别码和授权存储模块;
启动激活程序,并获取所述授权存储模块中的信息,得到加密后的第一激活文件;
通过公钥对加密后的第一激活文件进行解密,得到第一激活文件;
验证用户识别码;
如果验证成功,则校验第一激活文件中的内容;
如果全部校验成功,则通过所述激活程序修改软件的激活状态;
如果存在校验失败,则所述软件激活失败;
如果验证失败,则所述软件激活失败。
2.根据权利要求1所述的方法,其中,所述验证用户识别码的步骤,包括:
获取所述第一激活文件中的第二用户识别码;
将所述第一用户识别码与所述第二用户识别码进行比对验证;
若所述第一用户识别码与所述第二用户识别码相同,则验证成功;
否则,验证失败。
3.根据权利要求1或2所述的方法,其中,所述校验第一激活文件中的内容的步骤,包括:
获取所述第一激活文件中的第二激活文件和第一哈希值;
计算第二激活文件的第二哈希值;
如果第一哈希值与第二哈希值相同,则校验成功;
否则,校验失败。
4.根据权利要求1至3中任一项所述的方法,其中,所述校验第一激活文件中的内容的步骤,还包括:
获取第一计算设备的系统时间;
将所述系统时间与第一激活文件中的权限起始时间进行比对;
如果所述系统时间晚于所述权限起始时间,则校验成功;
否则,校验失败。
5.根据权利要求1至4中任一项所述的方法,其中,所述校验第一激活文件中的内容的步骤,还包括:
获取第一计算设备中待激活软件的第一软件信息;
将所述待激活软件的第一软件信息与第一激活文件中的第二软件信息进行比对;
如果所述待激活软件的第一软件信息与所述第二软件信息相同,则校验成功;
否则,校验失败。
6.根据权利要求1至5中任一项所述的方法,所述授权存储模块还包括已激活设备文件,其中,所述校验第一激活文件中的内容的步骤,还包括:
获取所述授权存储模块中的已激活设备文件,所述已激活设备文件包括已激活软件所对应的计算设备的硬件信息;
如果所述已激活设备文件中包括的已激活软件的数量小于第一激活文件中的授权数量,或所述第一计算设备的硬件信息存在于已激活设备文件且所述第一计算设备的系统时间在第一激活文件中的权限结束时间之前,则校验成功;
否则,校验失败。
7.根据权利要求6所述的方法,其中,在所述通过所述激活程序修改软件的激活状态的步骤之后,还包括:
将第一计算设备的硬件信息写入已激活设备文件中。
8.根据权利要求1至7中任一项所述的方法,其中,所述第一用户识别码和授权存储模块通过离线方式从第二计算设备获取。
9.根据权利要求8所述的方法,其中,所述第一用户识别码和授权存储模块在所述第二计算设备中通过如下方式生成:
获取第三激活文件,所述第三激活文件包括第一计算设备的第一用户识别码、第三软件信息、授权数量、权限起始时间、和/或权限结束时间;
计算第三激活文件的第三哈希值,并将所述第三哈希值附加到所述第三激活文件中,得到第四激活文件;
通过私钥对所述第四激活文件进行加密,得到加密后的第四激活文件;
将所述加密后的第四激活文件写入授权存储模块。
10.一种激活软件的方法,在第二计算设备中执行,所述方法包括:
获取第三激活文件,所述第三激活文件包括第一计算设备的第一用户识别码、第三软件信息、授权数量、权限起始时间、和/或权限结束时间;
计算第三激活文件的第三哈希值,并将所述第三哈希值附加到所述第三激活文件中,得到第四激活文件;
通过私钥对所述第四激活文件进行加密,得到加密后的第四激活文件;
将所述加密后的第四激活文件写入授权存储模块,以便所述第一计算设备基于第一用户识别码和所述授权存储模块对所述软件进行激活。
11.一种激活软件的系统,所述系统包括:
第一计算设备,适于获取第一用户识别码和授权存储模块,适于启动激活程序,并获取所述授权存储模块中的信息,得到加密后的第一激活文件,适于通过公钥对加密后的第一激活文件进行解密,得到第一激活文件,适于验证用户识别码,如果用户识别码验证成功,则校验第一激活文件中的内容,如果第一激活文件中的内容全部校验成功,则通过所述激活程序修改软件的激活状态,如果校验第一激活文件中的内容时存在校验失败,则所述软件激活失败,如果用户识别码验证失败,则所述软件激活失败;
第二计算设备,适于获取第三激活文件,所述第三激活文件包括第一计算设备的第一用户识别码、第三软件信息、授权数量、权限起始时间、和/或权限结束时间,适于计算第三激活文件的第三哈希值,并将所述第三哈希值附加到所述第三激活文件中,得到第四激活文件,适于通过私钥对所述第四激活文件进行加密,得到加密后的第四激活文件,还适于将所述加密后的第四激活文件写入授权存储模块。
12.一种计算设备,包括:
至少一个处理器;以及
存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1至10中任一项所述方法的指令。
13.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1至10中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210488696.1A CN114925336A (zh) | 2022-05-06 | 2022-05-06 | 一种激活软件的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210488696.1A CN114925336A (zh) | 2022-05-06 | 2022-05-06 | 一种激活软件的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114925336A true CN114925336A (zh) | 2022-08-19 |
Family
ID=82806176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210488696.1A Pending CN114925336A (zh) | 2022-05-06 | 2022-05-06 | 一种激活软件的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114925336A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116975794A (zh) * | 2023-06-27 | 2023-10-31 | 深圳市青葡萄科技有限公司 | 一种软件激活方法、设备及存储介质 |
WO2024124804A1 (zh) * | 2022-12-12 | 2024-06-20 | 深圳市汇川技术股份有限公司 | 软件功能激活方法、装置、设备及存储介质 |
-
2022
- 2022-05-06 CN CN202210488696.1A patent/CN114925336A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024124804A1 (zh) * | 2022-12-12 | 2024-06-20 | 深圳市汇川技术股份有限公司 | 软件功能激活方法、装置、设备及存储介质 |
CN116975794A (zh) * | 2023-06-27 | 2023-10-31 | 深圳市青葡萄科技有限公司 | 一种软件激活方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112699342B (zh) | 授权控制方法、授权方法、装置及计算设备 | |
CN108810894B (zh) | 终端授权方法、装置、计算机设备和存储介质 | |
JP6239788B2 (ja) | 指紋認証方法、装置、インテリジェント端末及びコンピュータ記憶媒体 | |
JP5703391B2 (ja) | 耐タンパー性ブート処理のためのシステム及び方法 | |
TWI667586B (zh) | 用以核對uefi認證變量變化之系統及方法 | |
US8341422B2 (en) | Method and apparatus for incremental code signing | |
JP4912879B2 (ja) | プロセッサの保護された資源へのアクセスに対するセキュリティ保護方法 | |
CN112187544B (zh) | 固件升级方法、装置、计算机设备及存储介质 | |
US20060236122A1 (en) | Secure boot | |
CN112182550A (zh) | 应用程序的授权方法、授权系统、激活装置及计算设备 | |
JP5346608B2 (ja) | 情報処理装置およびファイル検証システム | |
CN110688660B (zh) | 一种终端安全启动的方法及装置、存储介质 | |
KR20080037048A (ko) | 라이센스에 따른 생산 작용 변경 | |
CN114925336A (zh) | 一种激活软件的方法及系统 | |
TW201109969A (en) | Method and system for securely updating field upgradeable units | |
US20130019110A1 (en) | Apparatus and method for preventing copying of terminal unique information in portable terminal | |
WO2012075904A1 (zh) | 一种验证绑定数据卡和移动主机的方法、装置及系统 | |
WO2018166163A1 (zh) | Pos终端控制方法、pos终端、服务器及存储介质 | |
CN114296873B (zh) | 一种虚拟机镜像保护方法、相关器件、芯片及电子设备 | |
CN117610083A (zh) | 文件校验方法、装置、电子设备及计算机存储介质 | |
CN116561734A (zh) | 一种验证方法、装置、计算机及计算机配置系统 | |
CN111177674A (zh) | 设备验证方法及设备 | |
CN115618306A (zh) | 一种软件保护方法、装置、系统、cpu芯片及电子设备 | |
CN115357948A (zh) | 一种基于tee及加密芯片的硬件防抄板加密方法及其装置 | |
WO2020088515A1 (zh) | Pos用户公钥安全认证方法、装置和终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |