软件加密方法、系统及计算机设备的制作方法

文档序号:6498816阅读:216来源:国知局
软件加密方法、系统及计算机设备的制作方法
【专利摘要】本发明提供一种软件加密方法、系统及计算机设备。根据本发明的方法,在用户设备基于第一密钥来运行相应软件后,将接收的来自所述用户设备的第一密钥解密后进行验证,并于验证通过后基于解密后的第一密钥所包含的信息以及所述用户设备的相关信息,来生成第二密钥;再将所生成的第二密钥发送给所述用户设备,以便所述用户设备下一次基于所述第二密钥来运行相应软件。本发明的优点包括:能有效保护软件,防止盗版等。
【专利说明】软件加密方法、系统及计算机设备
【技术领域】
[0001]本发明涉及计算机领域,特别是涉及一种软件加密方法、系统及计算机设备。
【背景技术】
[0002]随着互联网的普及发展,相应的网上应用和系统迅速地增长。对于网络应用开发者和开发商来说,如何防止盗版和有效地管理许可证(license)等都是优先的考虑点,为此,众多研发人员开发出各种软件加密方法。
[0003]例如,在申请号为201010272438.7的中国专利文献中,公开了一种软件加密方法及系统,其通过先将软件授权信息写入BIOS或EFI的预留存储空间,然后当软件运行时,由所述预留存储空间中获取软件授权信息,再通过软件的应用程序检测所述软件授权信息是否正确,若是,则软件正常圆形,否则软件运行出现异常。该种采用静态密钥来加密的方式虽然简单,但容易被他人破解,其安全系数较低。为此,研发人员在静态密钥的基础上又开发出各种动态密钥。
[0004]例如,在申请号为201110020490.8的中国专利文献中,公开了一种数据传输的加
密/解密方法及系统,其先由客户端向服务器端发送以促使密钥加密的登录鉴权请求报文,服务器端接收所述登录鉴权请求报文,解密后做鉴权匹配,并生成动态密钥,服务器端生成登录结果报文并发送,客户端接收登录结果报文,获取所述动态密钥,所述客户端及服务器端将所述初始密钥与所述动态密钥结合生成通信密钥,所述客户端与服务器端通信期间,采用所述通信密钥加密/解密数据,该种动态密钥与初始密钥相结合来加密数据的方式仅适用于客户端、服务器端间实时通信的场合。
[0005]而众多软件供应商所供应的软件都是单机运行的软件,如何对该类软件进行有效授权,防止被盗版等,实已成为本领域技术人员亟待解决的技术课题。

【发明内容】

[0006]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种软件加密方法、系统及计算机设备,以有效保护软件,防止盗版等。
[0007]为实现上述目的及其他相关目的,本发明提供一种软件加密方法,其至少包括步骤:
[0008]I)在用户设备基于第一密钥来运行相应软件后,将接收的来自所述用户设备的第一密钥解密后进行验证,并于验证通过后基于解密后的第一密钥所包含的信息以及所述用户设备的相关信息,来生成第二密钥;
[0009]2)将所生成的第二密钥发送给所述用户设备,以便所述用户设备下一次基于所述第二密钥来运行相应软件。
[0010]本发明还提供一种软件加密系统,其至少包括:
[0011]生成模块,用于在用户设备基于第一密钥来运行相应软件后,将接收的来自所述用户设备的第一密钥解密后进行验证,并于验证通过后基于解密后的第一密钥所包含的信息以及所述用户设备的相关信息,来生成第二密钥;
[0012]发送模块,用于将所生成的第二密钥发送给所述用户设备,以便所述用户设备下一次基于所述第二密钥来运行相应软件。
[0013]本发明还提供一种计算机设备,其包括前述的软件加密系统。
[0014]优选地,所述计算机设备包括基于云计算的由大量计算机或网络服务器构成的云。
[0015]如上所述,本发明的软件加密方法、系统及计算机设备,具有以下有益效果:能实现对软件的保护,防止盗版等。
【专利附图】

【附图说明】
[0016]图1显示为本发明的软件加密方法的流程图。
[0017]图2显示为本发明的软件加密系统示意图。
[0018]元件标号说明
[0019]
I软件加密系统
II生成模块 12 发送模块 S1-S4 步骤
【具体实施方式】
[0020]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
[0021]请参阅图1至图2。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0022]如图1所示,其为本发明的软件加密方法的流程图。其中,根据本发明的方法主要通过计算机设备中的软件加密系统来完成,该软件加密系统包括但不限于安装在计算机设备中且能够实现本发明方案的模块或系统。其中,该计算机设备包括但不限于:计算机、单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。
[0023]在步骤SI中,用户设备基于第一密钥来运行相应软件,并在运行后发送所述第一密钥给所述软件加密系统。
[0024]需要说明的是,若第一密钥为初始密钥,则所述第一密钥由软件供应者提供;若第一密钥不是初始密钥,则由所述软件加密系统发送给所述用户设备。其中,初始密钥中可包含标识信息、密钥类别信息、许可个数信息、有效期限信息及密钥值信息等;非初始密钥中则不仅包含初始密钥中的信息,还包含用户设备的相关信息,例如,用户设备名称信息、用户设备MAC地址信息等。
[0025]例如,用户设备Al基于第一密钥LI来启动软件XI,所述软件Xl的验证模块验证第一密钥LI,若验证通过,则继续运行,否则不再运行;而所述用户设备Al在启动所述软件Xl的同时、或者在所述软件Xl运行之后,所述用户设备Al将所述第一密钥LI发送给所述软件加密系统。
[0026]接着,在步骤S2中,所述软件加密系统将接收的来自所述用户设备的第一密钥解密后进行验证,并于验证通过后基于解密后的第一密钥所包含的信息以及所述用户设备的相关信息,来生成第二密钥。
[0027]其中,第一密钥所包含的信息在步骤SI中已经详述,在此不再重述。
[0028]其中,所述用户设备的相关信息包括仅仅与用户设备相关的信息,优选地,包括但不限于:用户设备名称信息、用户设备MAC地址信息、发送密钥的时间信息等。
[0029]优选地,所述软件加密系统将接收的来自所述用户设备的第一密钥解密后进行验证,并于验证通过后,直接基于解密后的第一密钥所包含的信息以及所述用户设备的相关信息,采用预定生成方式来生成第二密钥。
[0030]更为优选地,当第一密钥所包含的信息中包括密钥类别信息时,则所述软件加密系统将接收的来自所述用户设备的第一密钥解密后进行验证,并于验证通过后,先基于解密后的第一密钥所包含的密钥类别信息由所述用户设备的相关信息中选择相应信息,并基于解密后的第一密钥所包含的信息以及所选择的信息,采用预定生成方式来生成第二密钥。
[0031]其中,密钥类别信息用于表明密钥的类型,优选地,其包括但不限于:基于客户的永久密码;有特定期限的密码;多用户密码;包含用户身份信息的密码;基于预定高级加密算法的密码;包括用户设备密码验证方法的密码、以及前述多种类型构成的组合型密码等。
[0032]例如,若密钥类别为由有特定期限的密码与包含用户身份信息的密码构成的组合型密码,则所述软件加密系统由所述用户设备的相关信息中选择发送密钥的时间信息及用户设备名称信息,并基于发送密钥的时间信息来确定授权期限,再基于所选择的用户设备名称信息、所确定的授权期限及解密后的第一密钥所包含的信息、采用预定生成算法来生成第二密钥。接着,在步骤S3中,所述软件加密系统将所生成的第二密钥发送给所述用户设备。
[0033]例如,所述软件加密系统将所生成的第二密钥L2发送给用户设备Al。
[0034]在步骤S4中,用户设备基于所述第二密钥来再次运行相应软件。
[0035]具体地,当用户设备基于第一密钥启动相应软件,并在该软件运行结束后,若用户设备需要再次运行该软件,则用户设备基于所述第二密钥来再次运行相应软件;并在启动该软件的同时、或者在该软件运行之后,所述用户设备再将所述第二密钥发送给所述软件加密系统,接着,所述软件加密系统重复前述步骤S2、S3,随后所述用户设备重复本步骤S4,……直至所述用户设备的权限到期为止。
[0036]作为一种优选方式,前述步骤S2还包括步骤S2’。
[0037] 在步骤S2’中,所述软件加密系统将接收的来自所述用户设备的第一密钥解密后进行验证,在验证通过后再确定密钥类别信息,并基于所确定密钥类别信息、解密后的第一密钥所包含的密钥类别信息以及所述用户设备的相关信息,来生成第二密钥。
[0038]具体地,当第一密钥中未包含密钥类别信息时,则所述软件加密系统将接收的来自所述用户设备的第一密钥解密后进行验证,在验证通过后,先基于所确定的密钥类别信息由所述用户设备的相关信息中选择相应信息,随后再将所确定的密钥类别信息添加入基于解密后的第一密钥所包含的信息中,最后再基于添加了密钥类别信息的第一密钥以及所选择的信息,采用预定生成方式来生成第二密钥;若第一密钥中已包含密钥类别信息,则将所确定的密钥类别信息取代第一密钥中的密钥类别信息,随后再基于该更新后的第一第一密钥以及所选择的信息,采用预定生成方式来生成第二密钥。
[0039]其中,所述软件加密系统确定密钥类别信息的方式包括但不限于:1)基于第一密钥的密钥类别信息来确定,例如,直接将第一密钥的密钥类别信息作为第二密钥的密钥类别信息;2)基于预定规则来确定,例如,按照预定的密钥类别排序方式,将排序在第一密钥的密钥类别信息之后的第一个密钥类别信息作为第二密钥的密钥类别信息;又例如,采用随机方式由所有密钥类别信息中选择一个密钥类别信息作为第二密钥的密钥类别信息等;
3)基于第一密钥中的密钥更新信息来确定;例如,第一密钥中的密钥更新信息为将密钥类别信息更新为包括用户设备密码验证方法的密码,则所述软件加密系统将用户设备密码验证方法的密码作为第二密钥的密钥类别信息。
[0040]再请参见图2,其为本发明的软件加密系统示意图。所述软件加密系统I至少包括:生成模块11与发送模块12。
[0041]首先,用户设备基于第一密钥来运行相应软件,并在运行后发送所述第一密钥给所述软件加S系统I。
[0042]需要说明的是,若第一密钥为初始密钥,则所述第一密钥由软件供应者提供;若第一密钥不是初始密钥,则由所述软件加密系统I发送给所述用户设备。其中,初始密钥中包含标识信息、密钥类别信息、许可个数信息、有效期限信息及密钥值信息等;非初始密钥中则不仅包含初始密钥的全部信息,还包含用户设备的相关信息,例如,用户设备名称信息、用户设备MAC地址信息等。
[0043]例如,用户设备Al基于第一密钥LI来启动软件XI,所述软件Xl的验证模块验证第一密钥LI,若验证通过,则继续运行,否则不再运行;而所述用户设备Al在启动所述软件Xl的同时、或者在所述软件Xl运行之后,所述用户设备Al将所述第一密钥LI发送给所述软件加密系统
[0044]接着,所述生成模块11将接收的来自所述用户设备的第一密钥解密后进行验证,并于验证通过后基于解密后的第一密钥所包含的信息以及所述用户设备的相关信息,来生成第二密钥。
[0045]其中,第一密钥所包含的信息在步骤SI中已经详述,在此不再重述。
[0046]其中,所述用户设备的相关信息包括仅仅与用户设备相关的信息,优选地,包括但不限于:用户设备名称信息、用户设备MAC地址信息、发送密钥的时间信息等。
[0047]优选地,所述生成模块11将接收的来自所述用户设备的第一密钥解密后进行验证,并于验证通过后,直接基于解密后的第一密钥所包含的信息以及所述用户设备的相关信息,采用预定生成方式来生成第二密钥。[0048]更为优选地,当第一密钥所包含的信息中包括密钥类别信息时,则所述软件加密系统I还包括选择模块。当所述生成模块11将接收的来自所述用户设备的第一密钥解密后进行验证,并于验证通过后,所述选择模块先基于解密后的第一密钥所包含的密钥类别信息由所述用户设备的相关信息中选择相应信息,随后,所述生成模块11再基于解密后的第一密钥所包含的信息以及选择模块所选择的信息,采用预定生成方式来生成第二密钥。其中,密钥类别信息包括但不限于:基于客户的永久密码;有特定期限的密码;多用户密码;包含用户身份信息的密码;基于预定高级加密算法的密码;包括用户设备密码验证方法的密码、以及前述多种类型构成的组合型密码等。
[0049]例如,若密钥类别为由有特定期限的密码与包含用户身份信息的密码构成的组合型密码,则所述选择模块由所述用户设备的相关信息中选择发送密钥的时间信息及用户设备名称信息,所述生成模块11基于发送密钥的时间信息来确定授权期限,再基于选择模块所选择的用户设备名称信息、所确定的授权期限及解密后的第一密钥所包含的信息、采用预定生成算法来生成第二密钥。
[0050]接着,所述发送模块12将所生成的第二密钥发送给所述用户设备。
[0051]例如,所述发送模块12将所生成的第二密钥L2发送给用户设备Al。
[0052]随后,用户设备基于所述第二密钥来再次运行相应软件。
[0053]具体地,当用户设备基于第一密钥启动相应软件,并在该软件运行结束后,若用户设备需要再次运行该软件,则用户设备基于所述第二密钥来再次运行相应软件;并在启动该软件的同时、或者在该软件运行之后,所述用户设备再将所述第二密钥发送给所述软件加密系统1,接着,所述软生成模块11执行生成密钥的操作,所述发送模块12执行发送密钥的操作,随后所述用户设备基于再次接收的密钥来运行相应软件,……直至所述用户设备的权限到期为止。
[0054]作为一种优选方式,所述软件加密系统还包括确定模块。
[0055]所述生成模块11将接收的来自所述用户设备的第一密钥解密后进行验证,在验证通过后所述确定模块确定密钥类别信息,随后,所述生成模块11基于所确定密钥类别信息、解密后的的第一密钥所包含的密钥类别信息以及所述用户设备的相关信息,来生成第
二密钥。
[0056]具体地,当第一密钥中未包含密钥类别信息时,则所述生成模块11将接收的来自所述用户设备的第一密钥解密后进行验证,在验证通过后,选择模块先基于确定模块所确定的密钥类别信息由所述用户设备的相关信息中选择相应信息,随后生成模块11再将所确定的密钥类别信息添加入基于解密后的第一密钥所包含的信息中,最后再基于添加了密钥类别信息的第一密钥以及所选择的信息,采用预定生成方式来生成第二密钥;若第一密钥中已包含密钥类别信息,则生成模块11将所确定的密钥类别信息取代第一密钥中的密钥类别信息,随后再基于该更新后的第一第一密钥以及所选择的信息,采用预定生成方式来生成第二密钥。
[0057]其中,所述确定模块确定密钥类别信息的方式包括但不限于:1)基于第一密钥的密钥类别信息来确定,例如,直接将第一密钥的密钥类别信息作为第二密钥的密钥类别信息;2)基于预定规则来确定,例如,按照预定的密钥类别排序方式,将排序在第一密钥的密钥类别信息之后的 第一个密钥类别信息作为第二密钥的密钥类别信息;又例如,采用随机方式由所有密钥类别信息中选择一个密钥类别信息作为第二密钥的密钥类别信息等;3)基于第一密钥中的密钥更新信息来确定;例如,第一密钥中的密钥更新信息为将密钥类别信息更新为包括用户设备密码验证方法的密码,则所述确定模块将用户设备密码验证方法的密码作为第二密钥的密钥类别信息。
[0058]综上所述,本发明的软件加密方法及系统采用一次性密钥来为软件加密,密钥一旦被使用后,就不能再次被使用,也就是说,对用户设备而言,所有密钥都只存在一个时间段里,例如每一次启动软件时,由此,即使黑客得到第一密钥或第二密钥,也不可能被应用到另一台计算机或系统里面。因为第一密钥或第二密钥的解密、解码、密钥值的解密、用户计算机标识、动态因子、动态因子解密、以及这些交叉关系解码,如果某一处没有通过都会导致解密失败。而即使黑客得到了密钥,也不能进行模拟运行,因此,本发明在最大程度上的利用静态加动态方式进行多层次密钥加密。为版权和软件开发者提供最大的保护。
[0059]所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0060]上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属【技术领域】中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
【权利要求】
1.一种软件加密方法,其特征在于,所述软件加密方法至少包括步骤: 1)在用户设备基于第一密钥来运行相应软件后,将接收的来自所述用户设备的第一密钥解密后进行验证,并于验证通过后基于解密后的第一密钥所包含的信息以及所述用户设备的相关信息,来生成第二密钥; 2)将所生成的第二密钥发送给所述用户设备,以便所述用户设备下一次基于所述第二密钥来运行相应软件。
2.根据权利要求1所述的软件加密方法,其特征在于,当解密后的第一密钥所包含的信息包括密钥类别信息时,所述步骤I)还包括: 在验证通过后基于解密后的第一密钥所包含的密钥类别信息由所述用户设备的相关信息中选择相应信息,并基于解密后的第一密钥所包含的信息以及所选择的信息,来生成第二密钥。
3.根据权利要求1或2所述的软件加密方法,其特征在于所述步骤I)还包括步骤: 在验证通过后确定密钥类别信息,并基于所确定密钥类别信息、解密后的第一密钥所包含的密钥类别信息以及所述用户设备的相关信息,来生成第二密钥。
4.根据权利要求1所述的软件加密方法,其特征在于,所述用户设备的相关信息包括: 用户设备名称信息; 用户设备MAC地址信息; 发送密钥的时间信息。
5.一种软件加密系统,其特征在于,所述软件加密系统至少包括: 生成模块,用于在用户设备基于第一密钥来运行相应软件后,将接收的来自所述用户设备的第一密钥解密后进行验证,并于验证通过后基于解密后的第一密钥所包含的信息以及所述用户设备的相关信息,来生成第二密钥; 发送模块,用于将所生成的第二密钥发送给所述用户设备,以便所述用户设备下一次基于所述第二密钥来运行相应软件。
6.根据权利要求5所述的软件加密系统,其特征在于还包括: 选择模块,用于在验证通过后基于解密后的第一密钥所包含的密钥类别信息由所述用户设备的相关信息中选择相应信息,以便生成模块基于解密后的第一密钥所包含的信息以及所选择的信息,来生成第二密钥。
7.根据权利要求5或6所述的软件加密系统,其特征在于还包括: 确定模块,用于在验证通过后确定密钥类别信息,以便生成模块基于所确定密钥类别信息、解密后的第一密钥所包含的密钥类别信息以及所述用户设备的相关信息,来生成第二密钥。
8.根据权利要求5所述的软件加密系统,其特征在于,所述用户设备的相关信息包括: 用户设备名称信息; 用户设备MAC地址信息; 发送密钥的时间信息。
9.一种计算机设备,其特征在于包括:权利要求5至8任一项所述的软件加密系统。
10.根据权利要求9所述的计算机设备,其特征在于,所述计算机设备包括基于云计算的由大量计算机或网络服务器构成的云。
【文档编号】G06F21/12GK103914636SQ201310002363
【公开日】2014年7月9日 申请日期:2013年1月5日 优先权日:2013年1月5日
【发明者】林锦吾, 李振洪, 胡杭颖 申请人:上海云传数字科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1