一种程序加密方法和程序加密装置与流程

文档序号:12825408阅读:403来源:国知局
一种程序加密方法和程序加密装置与流程

本发明涉及程序加密,具体地,涉及一种程序加密方法和程序加密装置。



背景技术:

在开发应用程序的时候,通常需要对应用程序进行加密,来避免复制程序以进行直接使用。目前很多软件采用硬件加密的方式,通过读取硬件中的授权,如果能通过验证则程序就可以正常执行。但是,这种方式,在销售软件的同时就会增加硬件的成本,并且如果硬件丢失,则程序将无法正常运行。并且,这样的加密方式会增加生产成本,对程序的发行、升级等操作,均需要需要提供商对用户的硬件进行发行、升级或者更换,如此就会增加提供商对软件的维护成本。



技术实现要素:

本发明的目的是提供一种程序加密方法和程序加密装置,该程序加密方法避免了对程序的恶意复制并降低了程序的生产及维护成本。

为了实现上述目的,本发明提供一种程序加密方法,所述程序加密方法包括:获取运行程序的运行设备的硬件信息;接收用于程序的激活码;以及基于所述硬件信息和所述激活码激活所述程序。

优选地,基于所述硬件信息和所述激活码激活所述程序包括:校验所述激活码是否正确;校验所述激活码与所述程序是否匹配;在所述激活码正确且所述激活码与所述程序相匹配的情况下,激活所述程序。

优选地,基于所述硬件信息和所述激活码激活所述程序还包括:基于所述硬件信息和所述激活码激活生成授权文件;以及使用所述授权文件覆盖所 述程序的临时授权文件。

优选地,所述程序加密方法还包括:接收升级或更新请求;针对所述激活码生成相应于升级或更新信息的新授权文件;使用所述新授权文件替换之前的授权文件。

优选地,所述程序加密方法还包括:在激活所述程序之后,将所述激活码设置为激活状态。

优选地,所述程序加密方法还包括:接收再激活请求;将所述激活码设置为未激活状态;获取安装所述程序的新的运行设备的硬件信息;基于所述新的运行设备的硬件信息和所述激活码再次激活所述程序。

优选地,所述程序加密方法还包括:在激活所述程序的过程中,接收客户基本信息。

优选地,激活所述程序包括在线激活和本地激活。

相应地,本发明还提供一种程序加密装置,所述程序加密装置包括:获取装置,获取所述运行设备的硬件信息;接收装置,接收用于程序的激活码;以及激活装置,基于所述硬件信息和所述激活码激活所述程序。

优选地,所述程序加密装置还包括:校验装置,校验所述激活码是否正确,及校验所述硬件信息与所述程序是否匹配;所述激活装置还用于在所述激活码正确且所述硬件信息与所述程序相匹配的情况下激活所述程序。

通过上述技术方案,获取运行程序的运行设备的硬件信息,接收用于程序的激活码,并基于所述硬件信息和所述激活码激活所述程序。如此避免了对程序的恶意复制并降低了程序的生产及维护成本。

本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与 下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:

图1是根据本发明提供的一种程序加密方法的流程图;以及

图2根据本发明提供了程序加密装置的结构示意图。

附图标记说明

21获取装置22接收装置

23激活装置

具体实施方式

以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。

图1是根据本发明提供的一种程序加密方法的流程图,如图1所示,本发明提供的程序加密方法可以包括:在步骤11处,获取运行程序的运行设备的硬件信息;在步骤12处,接收用于程序的激活码;以及在步骤13处,基于所述硬件信息和所述激活码激活所述程序。如此避免了对程序的恶意复制并降低了程序的生产及维护成本。

其中,基于所述硬件信息和所述激活码激活所述程序可以包括:校验所述激活码是否正确;校验所述硬件信息与所述程序是否匹配;在所述激活码正确且所述硬件信息与所述程序相匹配的情况下,激活所述程序。

基于所述硬件信息和所述激活码激活所述程序还包括:基于所述硬件信息和所述激活码激活生成授权文件;以及使用所述授权文件覆盖所述程序的临时授权文件。

针对生成的应用程序,需要生成一个激活码,这个激活码对应了应用程 序的基本信息,其中,所示基本信息可以包括:模块授权、并发数、过期日期等等控制参数信息。

为了能够更方便的新增程序的激活码,增加了对产品模块的维护、产品版本方案维护。程序中可以包括各种模块,这些模块也可以任意组合形成最终的产品版本方案。针对每个版本方案,可以选择过期日期、并发数、产品模块信息以及每个模块的过期日期和并发数等信息。

在新增程序激活码的时候,先确定应用程序,然后可以通过设置的版本方案选择相应的控制参数信息,并且可以批量增加激活码。将激活码保存之后,可以直接将这些激活码导出到excel表以便进行管理;或者可以将这些激活码直接分配给系统中的指定销售人员用户,这样销售人员可以直接登录该系统查看为其分配的程序激活码。

为了方便对激活码的控制,可以增加标记,如果激活码未使用或者还未销售,则可以将该激活码保存在未销售列表中。如果激活码激活或销售后,可以将该激活码标记成已销售并可以将其保存在已销售列表中,而且可以在备注中增加客户基本信息,方便之后的跟踪及解决问题。

每一个激活码可以对应一套程序,销售软件的同时,可以将一条激活码一并放入产品中。产品激活的时候,需要针对安装软件的机器获取其硬件信息,并且将硬件信息通过程序预先开发的加密方式加密生成一串字符,称之为硬件码。

可以通过两种方式来激活程序:在线激活和手动下载激活。

对于在线激活,用户可以在运行设备上安装软件,安装之后,该运行设备可以同时安装了临时授权文件。然后,可以在运行设备上运行所述软件,用户可以通过激活程序页面,输入激活码。程序将激活码和运行设备的硬件信息发送到服务器。服务器可以通过预先处理好的逻辑判断,决定是否返回正确的加密信息或者错误提示。其中,还可以将客户基本信息(包括客户名 称、联系方式等等)发送至服务器,以便后续跟踪服务。

当服务器接收到传来的机器码和激活码后,可以校验改激活码的正确性,是否已使用。如所述激活码不正确,则返回错误信息。如果所述激活码正确,则校验所述激活码与所述程序是否匹配,如不匹配则终止并返回错误信息。如果,所述激活码与所述程序相匹配,则根据激活码对应的程序、模块授权信息、过期日期、并发数等等信息通过程序控制生成加密授权文件,并将加密授权文件返回到客户端中。所述客户端接收到授权文件之后,可以将其复制到本地程序中,替换临时授权文件,如果需要可以提示重启应用程序,以激活上述程序。虽然上述给出了两种校验过程的先后顺序,但这仅仅是示意性的,本领域技术人员可以将两种校验过程的顺序进行调换。

如果客户由于某些原因并不能接入互联网,则可以采用本地激活的方式来激活程序。客户可以通过手动激活的方式将授权文件下载到本地,然后拷贝到客户的运行设备上。

针对本地激活,激活之前,服务器获取客户运行设备的硬件信息以及相应的激活码。基于激活码和硬件信息生成授权文件。客户可以复制该授权文件,并将该授权文件手动拷贝以覆盖客户软件中的临时授权文件。如有需要可以重启客户程序以完成激活过程。

在激活所述程序之后,可以将所述激活码设置为激活状态,以便对激活码进行管理,并可以建立激活工单以保存激活信息。

另外,所述程序加密方法还包括:接收升级或更新请求;针对所述激活码生成相应于升级或更新信息的新授权文件;使用所述新授权文件替换之前的授权文件。

当客户购买了软件之后,随着业务的发展,需要购买新的模块或者当并发数不足以满足目前的情况,则需要将对目前的软件进行升级或更新。当接收到客户的升级或更新请求之后,可以在系统中增加升级工单。接收当前客 户正在使用的激活码,然后会自动加载当前激活码所对应的控制参数,可以增加或删除模块、修改模块授权的控制参数、过期日期、并发数等等控制参数。在修改完对应于客户升级或更新请求的控制参数后,就可以通知客户进行更新授权了。

更新与软件激活的方式类似,可以包括在线升级和本地升级。

对于在线升级,在客户进行升级时,可以将当前的激活码传送到服务器,服务器得到升级的请求之后,会从升级工单中查询升级需求,判断是否存在未使用的升级需求,如果不存在,则返回并提示版本最新,无需升级。如果存在升级需求,则将所有针对此激活码的升级需求倒序,获取最新的一条升级需求。根据最新的升级需求中的控制参数,更新授权数据,并生成最新的授权文件,并将所有该激活码对应的升级工单状态修改为已升级状态。最后将新的授权文件返回到客户的应用程序中,覆盖之前的授权文件,如有需要可以提示用户进行重启,以完成程序升级或更新。

对于本地升级,与本地激活的方法类似。根据激活码基本信息中,将最新的升级工单的授权信息写入到最新的授权中,然后生成新的授权文件。用户可以将下载的新的授权文件并将其复制到客户的运行设备中以覆盖之前的授权文件,如有需要重启所述程序,以完成程序升级或更新。

此外,所述程序加密方法还包括:接收再激活请求;将所述激活码设置为未激活状态;获取安装所述程序的新的运行设备的硬件信息;基于所述新的运行设备的硬件信息和所述激活码再次激活所述程序。

当客户的运行设备由于某些原因需要更换或者转移时。在新的运行设备上,由于授权文件的存在,则无法启动该程序。客户可以发送再激活请求,经过审核之后,服务器可以新增一条再激活工单,并输入之前提供的激活码,自动加载之前的激活信息。在再激活工单中保存激活信息之后,会删除之前激活工单中的激活信息,并将激活码状态修改成未激活。如此该激活码与新 的激活码具备一样的功能,然后按照上述激活操作(在线激活、本地激活)可以将程序重新激活,即,获取安装所述程序的新的运行设备的硬件信息;基于所述新的运行设备的硬件信息和所述激活码再次激活所述程序。

相应地,本发明还提供一种程序加密装置,图2根据本发明提供了程序加密装置的结构示意图,如图2所示,所述程序加密装置可以包括:获取装置21,获取所述运行设备的硬件信息;接收装置22,接收用于程序的激活码;以及激活装置23,基于所述硬件信息和所述激活码激活所述程序。如此避免了对程序的恶意复制并降低了程序的生产及维护成本。

另外,所述程序加密装置还可以包括:校验装置,校验所述激活码是否正确,及校验所述硬件信息与所述程序是否匹配;所述激活装置还用于在所述激活码正确且所述硬件信息与所述程序相匹配的情况下激活所述程序。

关于程序加密装置的其它特征和益处与上述程序加密方法相似,因而在此不再赘述。

以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。

此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1