CN106919810B - 注册码生成方法及装置、软件注册方法及装置 - Google Patents
注册码生成方法及装置、软件注册方法及装置 Download PDFInfo
- Publication number
- CN106919810B CN106919810B CN201710096734.8A CN201710096734A CN106919810B CN 106919810 B CN106919810 B CN 106919810B CN 201710096734 A CN201710096734 A CN 201710096734A CN 106919810 B CN106919810 B CN 106919810B
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- registration code
- software
- code
- registration
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000013475 authorization Methods 0.000 claims abstract description 91
- 238000006467 substitution reaction Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 6
- 125000004122 cyclic group Chemical group 0.000 claims description 5
- 238000012795 verification Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 19
- 230000007547 defect Effects 0.000 abstract description 11
- 230000006870 function Effects 0.000 description 20
- 230000006872 improvement Effects 0.000 description 6
- 239000000203 mixture Substances 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000005215 recombination Methods 0.000 description 2
- 230000006798 recombination Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种注册码生成方法,通过使所述注册码包括机器码、软件产品密码和若干软件权限三种信息,其中机器码能防止软件被非法拷贝安装、重装***重新安装、约定试用条件到期后重新安装等非法使用软件的情况,而不同的软件产品密码,使得软件开发商可以使用同样的软件注册保护方法对多种软件产品进行保护,再者,设置不同的软件的权限可以满足不同用户多样化的需求,控制灵活,因此本方案能有效克服现有注册码包含信息少、功能单一的缺陷,且避免了使用license文件授权过程过于繁琐且参数固定的问题,方便用户输入,且在试用软件阶段切换到正式使用阶段只需更换注册码,无需重新安装,方便快捷。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种注册码生成方法及装置、软件注册方法及装置。
背景技术
软件开发商为了推广软件,常常提供软件给潜在客户试用,同时软件开发商为了保护自身的利益,会对对试用版本软件功能进行一定限制。通常的做法有三种,一是软件开发商提供裁减掉部分功能的试用版本软件给客户进行体验,客户正式购买后才提供正式版本全功能软件;二是软件开发商提供全功能但有使用期限的试用版软件给客户试用,试用到期后需购买并安装正式版本才能使;三是软件开发商提供全功能软件给客户试用,但是软件默认有一个使用期限,期限过后必须向软件开发商索取License(授权许可)文件或者输入注册码后软件才能正常使用。这三种方式中,裁减功能的软件会令用户试用体验不好,可能丢失潜在客户。又或者裁减功能的试用版软件即可满足客户要求,导致客户没有进一步购买动力,相当于提供了免费软件。全功能但有使用期限的试用软件,由于试用软件的程序文件与正式软件的程序文件不同,在购买后还需重新安装或升级软件,无法实现由试用到正式使用平滑过渡。
采用License文件授权的方式固然可以通过多组信息单元控制软件使用,但是License文件一般文件体积较大,内容也不利于人类阅读与记忆,很难通过电话、短信进行传递,也不适于批量使用,更不可能在像在类似ATM机一样应用的目标机上手工输入License文件内容。通常使用注册码的软件虽然方便输入,但由于注册码包含信息单元少,功能单一,只能通过识别注册码有效或者无效状态来决定软件是否可以继续使用。使用License文件或者注册码方式的有使用期限的试用版软件的试用时长固定,没法灵活控制,也可能存在客户试用到期后,通过重装***后继续试用使用情况。
因此,需要一种既方便输入、又能灵活控制软件使用权限的方法,能满足用户需求和有效保护软件产权。
发明内容
本发明实施例的目的是提供一种注册码生成方法及装置、软件注册方法及装置,能有效克服现有注册码包含信息少、功能单一的缺陷,且避免了使用license文件授权过程过于繁琐且参数固定的问题,既能方便输入,又能灵活控制。
为实现上述目的,本发明实施例提供了一种注册码生成方法,包括步骤:
基于机器码和软件产品密码通过第一加密算法生成第一中间密文;
根据预设的若干软件使用权限,生成授权信息密文;
根据所述第一中间密文和授权信息密文进行加密运算后,生成注册码密文;
根据所述注册码密文,输出注册码的字符串序列。
与现有技术相比,本发明公开的注册码生成方法先通过对基于机器码和软件产品密码通过第一加密算法生成第一中间密文,再根据预设的若干软件使用权限,生成授权信息密文,然后将所述第一中间密文和授权信息密文生成注册码密文,从而输出注册码的字符串序列,使得所述注册码包括机器码、软件产品密码和若干软件权限三种信息,能有效克服现有注册码包含信息少、功能单一的缺陷,且避免了使用license文件授权过程过于繁琐且参数固定的问题,可灵活控制又能保护软件的产权。
作为上述方案的改进,所述机器码通过对软件产品密码和以下一种或几种信息进行Hash运算后生成:计算机硬盘编号、计算机CPU编号、计算机网卡MAC地址、第一次计算机器码的***时间、软件配置文件内容。通过对软件产品密码和计算机硬件信息生成机器码,可以防止软件的非法拷贝。且使用软件配置文件内容作为机器码计算输入可以限制用户不能修改关键配置,有利于保护软件的产权。
作为上述方案的改进,所述将所述第一中间密文和授权信息密文进行加密运算后,生成注册码密文具体包括步骤:
将所述第一中间密文拆分为第一部分和第二部分后,将所述第一中间密文的第二部分与所述授权信息密文通过第二加密算法生成临时密文;
将所述第一中间密文的第一部分和所述临时密文进行组合后生成第二中间密文,并通过所述第一加密算法生成第三中间密文;
将所述第三中间密文拆分为第一部分和第二部分后,将所述第三中间密文的第一部分和所述临时密文进行组合生成注册码密文。
通过多次的组合和加密运算,既保证注册码包括软件产品密码、机器码和若干软件使用权限三者的信息,又保证了注册码的不可重复性。
作为上述方案的改进,所述第一中间密文和机器码密文的长度为16个字节;且所述第一中间密文或第三中间密文的第一部分和第二部分的长度满足以下关系:
X+Y=16,X>0&Y>0
其中,所述X为第一中间密文的第一部分或第三中间密文的第一部分所占的字节数,Y为第一中间密文的第二部分或第三中间密文的第二部分所占的字节数。所述第一部分所占的字节数小于第二部分所占的字节数,可以保证所述注册密文有足够的存储空间以包括所需的软件使用权限。
作为上述方案的改进,所述第二加密算法为异或加密算法、循环移位加密算法或代换加密算法。且通过设置不同的长度组成,可以使该方法适用于不同的软件使用授权设置。
作为上述方案的改进,所述第一加密算法为Hash加密算法。Hash加密算法能保证信息的完整性和紧凑型。
作为上述方案的改进,所述授权信息密文包括模块组成的信息单元、限制次数的信息单元、软件使用的限制天数的信息单元、限制日期的信息单元、客户端最大连接数的信息单元、最大同时使用用户数量的信息单元、最大吞吐量的信息单元或支持CPU最大个数的信息单元。通过设置多种的软件使用权限,可使得所述授权信息密文包括多种软件使用权限信息,使得软件使用更加灵活,满足用户多样化的需求。
本发明实施例还对应提供了一种软件注册方法,包括步骤:
基于机器码和软件产品密码通过第一加密算法成第一中间密文,将所述第一中间密文拆分为第一部分和第二部分;
接收用户输入的注册码并转换成注册码密文,将所述注册码密文拆分为第一部分和第二部分;
将所述第一中间密文的第一部分和所述注册码密文的第二部分进行组合生成第二中间密文,并通过第一加密算法生成第三中间密文,将所述第三中间密文拆分为第一部分和第二部分;
当所述第三中间密文的第一部分与所述注册码密文的第一部分相等时,则确定注册码有效,并将所述注册码密文保存至注册表;
当所述注册码有效时,将注册码密文的第二部分和第一中间密文的第二部分通过第二加密算法获得授权信息密文,解析所述授权信息密文获得软件产品的授权信息。
本发明实施例公开的一种软件注册方法,首先将机器码和软件产品密码进行加密运算后与所述注册码密文进行拆分、重新组合和加密运算后得到第三中间密文,若所述第三中间密文的第一部分和所述注册码密文的第一部分相同,确定注册码有效;若注册码有效,将所述第三中间密文的第二部分和所述注册码密文的第二部分进行加密运算后生成授权信息密文,解析所述授权信息密文即可获得授权信息。通过对所述注册码密文的第一部分进行验证软件的使用权,可防止软件的非法拷贝、重装***后重新安装等非法使用软件的使用,有效保护了软件的产权;通过软件使用权的验证后,通过解析所述授权信息密文获得授权信息,可灵活配置软件功能模块组成、使用次数、使用天数、使用期限等软件使用权限,可满足用户多样化的需求,能有效克服现有注册码包含信息少、功能单一的缺陷,且避免了使用license文件授权过程过于繁琐且参数固定的问题,既能方便输入,又能灵活控制。
本发明实施例还对应提供了一种注册码生成装置,包括:
第一中间密文生成模块,用于基于机器码和软件产品密码通过第一加密算法生成第一中间密文;
授权信息生成模块,用于预设的若干软件使用权限,生成授权信息密文;
注册码生成模块,用于根据所述第一中间密文和授权信息密文进行加密运算后,生成注册码密文。
注册码输出模块,用于根据注册码密文,输出注册码的字符串序列。
本发明实施例公开的一种注册码生成装置,通过第一中间密文生成模块整合机器码和软件产品密码生成第一中间密文,再根据预设的若干软件使用权限通过授权信息生成模块生成授权信息密文,将所述第一中间密文和注册码生成模块进行组合和加密运算后生成注册码密文,使得所述注册码包括机器码、软件产品密码和若干软件权限三种信息,避免软件被非法拷贝安装,能有效克服现有注册码包含信息少、功能单一的缺陷,且避免了使用license文件授权过程过于繁琐且参数固定的问题,可灵活控制又能保护软件的产权。
本发明实施例还对应提供了一种软件注册装置,包括:
第一中间密文拆分模块,用于基于机器码和软件产品密码通过第一加密算法成第一中间密文,将所述第一中间密文拆分为第一部分和第二部分;
注册码密文拆分模块,用于接收用户输入的注册码并转换成注册码密文,将所述注册码密文拆分为第一部分和第二部分;
第三中间密文拆分模块,用于将所述第一中间密文的第一部分和所述注册码密文的第二部分进行组合生成第二中间密文,并通过第一加密算法生成第三中间密文,将所述第三中间密文拆分为第一部分和第二部分;
注册码验证模块,用于当所述第三中间密文的第一部分与所述注册码密文的第一部分相等时,则确定注册码有效,并将所述注册码密文保存至注册表;
授权信息解析模块,用于当所述注册码有效时,将注册码密文的第二部分和第一中间密文的第二部分通过第二加密算法获得授权信息密文,解析所述授权信息密文获得软件产品的授权信息。
本发明实施例公开的一种软件注册装置,首先将机器码和软件产品密码进行加密运算后与所述注册码密文进行拆分、重新组合和加密运算后得到第三中间密文,若所述第三中间密文的第一部分和所述注册码密文的第一部分相同,确定注册码有效;若注册码有效,通过授权信息解析模块将所述第三中间密文的第二部分和所述注册码密文的第二部分进行加密运算后生成授权信息密文,解析所述授权信息密文即可获得授权信息。通过对所述注册码密文的第一部分进行验证软件的使用权,可防止软件的非法拷贝、重装***后重新安装等非法使用软件的使用,有效保护了软件的产权;通过软件使用权的验证后,通过解析所述授权信息密文获得授权信息,可灵活配置软件功能模块组成、使用次数、使用天数、使用期限等软件使用权限,可满足用户多样化的需求,能有效克服现有注册码包含信息少、功能单一的缺陷,且避免了使用license文件授权过程过于繁琐且参数固定的问题,既能方便输入,又能灵活控制。
附图说明
图1是本发明实施例1中一种注册码生成方法的流程示意图。
图2是本发明实施例2中一种注册码生成方法的流程示意图。
图3是本发明实施例2中注册码生成的过程示意图。
图4是本发明实施例3中一种软件注册方法的流程示意图。
图5是本发明实施例4中一种注册码生成装置的结构示意图。
图6是本发明实施例5中一种软件注册装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明实施例1提供的一种注册码生成方法的流程示意图。如图1所示的注册码生成方法包括步骤:
S11、基于机器码和软件产品密码通过第一加密算法生成第一中间密文;
S12、根据预设的若干软件使用权限,生成授权信息密文;
S13、将所述第一中间密文和授权信息密文进行加密运算后,生成注册码密文;
S14、根据所述注册码密文,输出注册码的字符串序列。
具体实施时,所述软件产品密码为软件开发商对不同版本的软件设置的产品密码,为开发商私有,不对外开放。先对机器码和软件产品密码进行加密运算可得到第一中间密文,所述第一中间密文包括机器码和软件产品密码两者的信息;接着,根据预设的若干软件使用权限,生成授权信息密文,所述若干软件使用权限可在软件开发设计阶段由软件开发商针对不同的客户群体进行设置,也可在软件销售使用阶段和正式使用阶段由用户设置;然后,将将所述第一中间密文和授权信息密文进行加密运算后,生成注册码密文,再根据注册码密文输出注册码的字符串序列。通过以上过程,可在注册码密文中整合软件产品密码、机器码和软件使用权限三者的信息,其中,所述机器码和软件产品密码用于软件使用时对软件使用权的验证,而配置不同的软件使用权限可灵活控制软件的功能模块组成、使用天数、使用次数等,满足用户多样化的需求,因此本方案能有效克服现有注册码包含信息少、功能单一的缺陷,且避免了使用license文件授权过程过于繁琐且参数固定的问题,既能方便输入,又能灵活控制。
优选地,所述机器码通过对软件产品密码和以下一种或几种信息进行Hash运算后生成:计算机硬盘编号、计算机CPU编号、计算机网卡MAC地址、第一次计算机器码的***时间、软件配置文件内容。其中,硬盘编号、CPU编号、网卡MAC地址,可以通过操作***API函数直接读取,这三组数据的使用可以使得每一台物理机机器码将会不同,也就限制了同一注册码在多台机器上同时使用可能。比如某一计算机硬盘编号为HDS722525VLAT80,MAC地址为50-7B-9D-C1-A6-96,这些数据一般都具唯一性,因此不同计算机对应的机器码也不同,因此同一注册码只能识别唯一一台机器,不能拷贝到其他机器上使用。另一方面,使用第一次计算机器码的***时间来生成机器码,可以防止***重装后重新安装软件的漏洞。因为,第一次计算机器码的***时间,在特定操作***安装实例上,执行第一次计算机器码操作后将当前***时间以毫秒为粒度的数值写入注册表,当再下一次再需要计算机器码时,将读取并使用注册表记录的时间值,这就保证了每次计算机器码结果一致,但是重装***后由于很难保证第一次获取机器码的时间毫秒值相同,所以机器码一定是变化的,机器码的变化会使当前注册码失效。再者,软件配置内容作为机器码计算输入可以限制用户用户不能自已修改关键配置,如有些软件在会在窗口标题上显示使用的客户公司名称,如果使用客户公司名称的内容作为计算机器码的参数,在用户自行软件修改显示公司名称后机器码会变化,机器码的变化会使当前注册码失效。因此,通过软件配置内容生成机器码,再通过机器码生成注册码,可以防止软件的非法拷贝和盗版使用。以上6项内容,软件产品密码为计算机器码的输入项,其他项在计算机器码时不必要全部使用,可以根据软件功能限制策略中任选其中一项或几项的组合使用。对于不同的软件配置不同的软件密码,有利于对多软件产品注册码使用同一的后台软件进行管理,也可以实现不同软件产品的注册码不能通用。
因此,机器码用于在有限范围唯一识别一个软件安装环境,可在用户使用的计算机上自动生成,用户可在软件界面上直接查看机器码。优选地,为方便输入的考虑,机器码为全数字而且长度限制在10个字符,所述10个字符可为0-9的一串数字表示。所述机器码在大范围内可能会重复,但在有限范围内极少量的重复不会对销售和使用产生影响。
参见图2,是本发明实施例2提供的一种注册码生成方法的流程示意图。如图2所示的注册码生成方法在实施例1的基础上,所述步骤S13具体包括步骤:
S131、将所述第一中间密文拆分为第一部分和第二部分后,将所述第一中间密文的第二部分与所述授权信息密文通过第二加密算法生成临时密文;
S132、将所述第一中间密文的第一部分和所述临时密文进行组合后生成第二中间密文,并通过所述第一加密算法生成第三中间密文;
S133、将所述第三中间密文拆分为第一部分和第二部分后,将所述第三中间密文的第一部分和所述临时密文进行组合生成注册码密文。
结合图3,下面将对本发明实施例的工作过程进行具体描述。具体实施时,先接收用户提供的机器码S,将所述机器码S和软件产品密码K作为输入,通过第一加密算法生成第一中间密文M1,将第一中间密文拆分为第一部分M1-1和第二部分M1-2;根据预设的若干软件使用权限,生成授权信息密文P;将所述第一中间密文的第二部分M1-2和所述授权信息密文P通过第二加密算法生成临时密文R1;接着,将所述第一中间密文的第一部分M1-1和所述临时密文R1进行组合后生成第二中间密文M2,并通过第一加密算法生成第三中间密文M3;然后,将所述第三中间密文M3拆分成第一部分M3-1和第二部分M3-2,将所述第三中间密文的第一部分M3-1和临时密文R1进行组合后生成注册码密文M4;最后,根据所述注册码密文M4输出注册码的字符串序列R。在上述过程中,可通过所述第一加密算法进行多个轮次的加密运算,有利于注册码的不可重复性,增加了注册码的破解难度,保护了软件的产权。通过上述过程,使得所述注册码包括机器码、软件产品密码和若干软件权限三种信息,其中机器码能防止软件被非法拷贝安装、重装***重新安装、约定试用条件到期后重新安装等非法使用软件的情况,而不同的软件产品密码,使得软件开发商可以使用同样的软件注册保护方法对多种软件产品进行保护,再者,设置不同的软件的权限可以满足不同用户多样化的需求,控制灵活,因此本方案能有效克服现有注册码包含信息少、功能单一的缺陷,且避免了使用license文件授权过程过于繁琐且参数固定的问题,方便用户输入,且在试用软件阶段切换到正式使用阶段只需更换注册码,无需重新安装。
优选地,所述授权信息密文包括模块组成的信息单元、限制次数的信息单元、软件使用的限制天数的信息单元、限制日期的信息单元、客户端最大连接数的信息单元、最大同时使用用户数量的信息单元、最大吞吐量的信息单元或支持CPU最大个数的信息单元。所述授权信息密文包含多种软件使用权限的信息,其中所述授权信息密文可包括模块标识、两个计数器初值以及时间限制。其中,一个计数器用于次数计数,另一个计数器用于天数计数。所述次数计数可以为客户端最大连接数计数、最大同时使用用户数量计数、最大吞吐量计数或支持CPU最大个数计数,可根据用户的不同的需求进行设置。对应的,软件开启时,或软件运行时的一定周期内,会对软件进行检查授权,检查项有是否注册、使用天数、使用期限是否已达到、指定模块是否可用等。
优选地,可将所述第一中间密文和机器码密文的长度设置为16个字节;且所述第一中间密文或第三中间密文的第一部分和第二部分的长度满足以下关系:
X+Y=16,X>0&Y>0
其中,所述X为第一中间密文的第一部分或第三中间密文的第一部分所占的字节数,Y为第一中间密文的第二部分或第三中间密文的第二部分所占的字节数。字节数,Y为第一中间密文的第二部分或第三中间密文的第二部分所占的字节数。在实际应用中,所述第一部分所占的字节数X小于第二部分所占的字节数Y,可以保证所述注册密文有足够的存储空间以包括所需的软件使用权限(通常Y≥8)。由上述过程可知,注册码密文占16个字节,也就是128位,采用十六进制,通过ASCII(American Standard Code for InformationInterchange,美国信息交换标准代码)码表,可将128位转化成32个字符,根据注册码组成的习惯,也为了更方便输入和传递,所述述注册码由0-9、A-F的字符组成。
进一步地,所述第一算法为Hash算法。Hash算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为Hash值。Hash值是一段数据唯一且极其紧凑的数值表示形式。如果输入数据中有变化,则Hash值也会发生变化。其中,比较常用的Hash算法为MD5和SHA。
优选地,所述第二加密算法为异或加密算法、循环移位加密算法或代换加密算法,可通过以下式子对这几种算法进行举例说明:
如明文T,密钥K;异或加密算法为E=T xor K;循环移位算法为E=T循环左移K(或循环右移);代换加密算法为E=Table[K+T mod L],L为代换表Table的大小。其中,循环移位在高级语言中实现不方便,代换加密需要构建代换的变换表,所以第二加密算法可优选为异或加密算法。
根据以上所述的注册码生成方法,本发明实施例3还对应提供了一种软件注册方法(即授权方法,基本是上述注册码生成方法的逆运算),如图4所示,包括步骤:
S31、基于机器码和软件产品密码通过第一加密算法成第一中间密文,将所述第一中间密文拆分为第一部分和第二部分;
S32、接收用户输入的注册码并转换成注册码密文,将所述注册码密文拆分为第一部分和第二部分;
S33、将所述第一中间密文的第一部分和所述注册码密文的第二部分进行组合后生成第二中间密文,并通过第一加密算法生成第三中间密文,将所述第三中间密文拆分为第一部分和第二部分;
S34、当所述第三中间密文的第一部分与所述注册码密文的第一部分相等时,则确定注册码有效,并将所述注册码密文保存至注册表;
S35、当所述注册码有效时,将注册码密文的第二部分和第一中间密文的第二部分通过第二加密算法获得授权信息密文,解析所述授权信息密文获得软件产品的授权信息。
具体实施时,先将机器码S和软件产品密码K通过第一加密算法成第一中间密文M1,将所述第一中间密文M1拆分为第一部分M1-1和第二部分M1-2;再将用户输入的注册码R并转换成注册码密文M4,将所述注册码密文拆分为第一部分M4-1和第二部分M4-2;将所述第一中间密文的第一部分M1-1和所述注册码密文的第二部分M4-2进行组合生成第二中间密文M2,并通过第一加密算法生成第三中间密文M3,将所述第三中间密文拆分为第一部分M3-1和第二部分M3-2;当所述第三中间密文的第一部分M3-1与所述注册码密文的第一部分M4-1相等时,则确定注册码有效,并将所述注册码R保存至注册表;当所述注册码有效时,将注册码密文的第二部分M4-2和第一中间密文的第二部分M1-2通过第二加密算法获得授权信息密文P,解析所述授权信息密文P获得软件产品的授权信息。通过注册码生成过程和对应的软件注册过程可知,所述第一加密算法为不可逆算法,可优选为Hash加密算法,所述第二加密算法为可逆算法,可优选为异或加密算法。通过对所述注册码密文的第一部分进行验证软件的使用权,可防止软件的非法拷贝、重装***后重新安装等非法使用软件的使用,有效保护了软件的产权;通过软件使用权的验证后,通过解析所述授权信息密文获得授权信息,可灵活配置软件功能模块组成、使用次数、使用天数、使用期限等软件使用权限,可满足用户多样化的需求,能有效克服现有注册码包含信息少、功能单一的缺陷,且避免了使用license文件授权过程过于繁琐且参数固定的问题,既能方便输入,又能灵活控制。
本发明实施例4还是对应提供了一种注册码生成装置,如图5所示,所述注册码生成装置100包括:
第一中间密文生成模块101,用于基于机器码和软件产品密码通过第一加密算法生成第一中间密文;
授权信息生成模块102,用于预设的若干软件使用权限,生成授权信息密文;
注册码生成模块103,用于根据所述第一中间密文和授权信息密文进行加密运算后,生成注册码密文。
注册码输出模块104,用于根据注册码密文,输出注册码的字符串序列。
本发明实施例公开的注册码生成装置100通过第一中间密文生成模块101整合机器码和软件产品密码生成第一中间密文,再根据预设的若干软件使用权限通过授权信息生成模块102生成授权信息密文,通过注册码生成模块103将所述第一中间密文和注册码生成模块进行组合和加密运算后生成注册码密文,使得所述注册码包括机器码、软件产品密码和若干软件权限三种信息,避免软件被非法拷贝安装,能有效克服现有注册码包含信息少、功能单一的缺陷,且避免了使用license文件授权过程过于繁琐且参数固定的问题,可灵活控制又能保护软件的产权。
本发明实施例5还是对应提供了一种软件注册装置200,如图6所示,包括:
第一中间密文拆分模块201,用于基于机器码和软件产品密码通过第一加密算法成第一中间密文,将所述第一中间密文拆分为第一部分和第二部分;
注册码密文拆分模块202,用于接收用户输入的注册码并转换成注册码密文,将所述注册码密文拆分为第一部分和第二部分;
第三中间密文拆分模块203,用于将所述第一中间密文的第一部分和所述注册码密文的第二部分进行组合生成第二中间密文,并通过第一加密算法生成第三中间密文,将所述第三中间密文拆分为第一部分和第二部分;
注册码验证模块204,用于当所述第三中间密文的第一部分与所述注册码密文的第一部分相等时,则确定注册码有效,并将所述注册码密文保存至注册表;
授权信息解析模块205,用于当所述注册码有效时,将注册码密文的第二部分和第一中间密文的第二部分通过第二加密算法获得授权信息密文,解析所述授权信息密文获得软件产品的授权信息。
本发明实施例的软件注册装置200的工作过程可参考上述实施例3对软件注册方法的具体描述,在此不再赘述。
综上,本发明公开了一种注册码生成方法、软件注册方法及注册码生成装置,通过对基于机器码和软件产品密码通过第一加密算法生成第一中间密文,再根据预设的若干软件使用权限,生成授权信息密文,然后将所述第一中间密文和授权信息密文生成注册码密文,从而输出注册码的字符串序列,使得所述注册码包括机器码、软件产品密码和若干软件权限三种信息,其中,其中机器码能防止软件被非法拷贝安装、重装***重新安装、约定试用条件到期后重新安装等非法使用软件的情况,而不同的软件产品密码,使得软件开发商可以使用同样的软件注册保护方法对多种软件产品进行保护,再者配置不同的软件使用权限可灵活控制软件的功能模块组成、使用天数、使用次数等,满足用户多样化的需求,因此本方案能能有效克服现有注册码包含信息少、功能单一的缺陷,且避免了使用license文件授权过程过于繁琐且参数固定的问题,既能方便输入,又能灵活控制。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (9)
1.一种注册码生成方法,其特征在于,包括:
基于机器码和软件产品密码通过第一加密算法生成第一中间密文;
根据预设的若干软件使用权限,生成授权信息密文;
将所述第一中间密文和授权信息密文进行加密运算后,生成注册码密文;
根据所述注册码密文,输出注册码的字符串序列;
其中,将所述第一中间密文和授权信息密文进行加密运算后,生成注册码密文具体包括:
将所述第一中间密文拆分为第一部分和第二部分后,将所述第一中间密文的第二部分与所述授权信息密文通过第二加密算法生成临时密文;
将所述第一中间密文的第一部分和所述临时密文进行组合后生成第二中间密文,并通过所述第一加密算法生成第三中间密文;
将所述第三中间密文拆分为第一部分和第二部分后,将所述第三中间密文的第一部分和所述临时密文进行组合生成注册码密文。
2.如权利要求1所述的注册码生成方法,其特征在于,所述机器码通过对软件产品密码和以下一种或几种信息进行Hash运算后生成:计算机硬盘编号、计算机CPU编号、计算机网卡MAC地址、第一次计算机器码的***时间、软件配置文件内容。
3.如权利要求1所述的注册码生成方法,其特征在于,所述第一中间密文和机器码密文的长度为16个字节:且所述第一中间密文或第三中间密文的第一部分和第二部分的长度满足以下关系:
X+Y=16,X>0&Y>0
其中,所述X为第一中间密文的第一部分或第三中间密文的第一部分所占的字节数,Y为第一中间密文的第二部分或第三中间密文的第二部分所占的字节数。
4.如权利要求1所述的注册码生成方法,其特征在于,所述第二加密算法为异或加密算法、循环移位加密算法或代换加密算法。
5.如权利要求1所述的注册码生成方法,其特征在于,所述第一加密算法为Hash加密算法。
6.如权利要求1所述的注册码生成方法,其特征在于,所述授权信息密文包括模块组成的信息单元、限制次数的信息单元、软件使用的限制天数的信息单元、限制日期的信息单元、客户端最大连接数的信息单元、最大同时使用用户数量的信息单元、最大吞吐量的信息单元或支持CPU最大个数的信息单元。
7.一种软件注册方法,其特征在于,包括步骤:
基于机器码和软件产品密码通过第一加密算法成第一中间密文,将所述第一中间密文拆分为第一部分和第二部分;
接收用户输入的注册码并转换成注册码密文,将所述注册码密文拆分为第一部分和第二部分;
将所述第一中间密文的第一部分和所述注册码密文的第二部分进行组合生成第二中间密文,并通过第一加密算法生成第三中间密文,将所述第三中间密文拆分为第一部分和第二部分;
当所述第三中间密文的第一部分与所述注册码密文的第一部分相等时,则确定注册码有效,并将所述注册码密文保存至注册表;
当所述注册码有效时,将注册码密文的第二部分和第一中间密文的第二部分通过第二加密算法获得授权信息密文,解析所述授权信息密文获得软件产品的授权信息。
8.一种注册码生成装置,其特征在于,包括:
第一中间密文生成模块,用于基于机器码和软件产品密码通过第一加密算法生成第一中间密文;
授权信息生成模块,用于预设的若干软件使用权限,生成授权信息密文:
注册码生成模块,用于根据所述第一中间密文和授权信息密文进行加密运算后,生成注册码密文;
注册码输出模块,用于根据注册码密文,输出注册码的字符串序列
其中,将所述第一中间密文和授权信息密文进行加密运算后,生成注册码密文具体包括:
将所述第一中间密文拆分为第一部分和第二部分后,将所述第一中间密文的第二部分与所述授权信息密文通过第二加密算法生成临时密文;
将所述第一中间密文的第一部分和所述临时密文进行组合后生成第二中间密文,并通过所述第一加密算法生成第三中间密文;
将所述第三中间密文拆分为第一部分和第二部分后,将所述第三中间密文的第一部分和所述临时密文进行组合生成注册码密文。
9.一种软件注册装置,其特征在于,包括:
第一中间密文拆分模块,用于基于机器码和软件产品密码通过第一加密算法成第一中间密文,将所述第一中间密文拆分为第一部分和第二部分;
注册码密文拆分模块,用于接收用户输入的注册码并转换成注册码密文,将所述注册码密文拆分为第一部分和第二部分;
第三中间密文拆分模块,用于将所述第一中间密文的第一部分和所述注册码密文的第二部分进行组合生成第二中间密文,并通过第一加密算法生成第三中间密文,将所述第三中间密文拆分为第一部分和第二部分;
注册码验证模块,用于当所述第三中间密文的第一部分与所述注册码密文的第一部分相等时,则确定注册码有效,并将所述注册码密文保存至注册表;授权信息解析模块,用于当所述注册码有效时,将注册码密文的第二部分和第一中间密文的第二部分通过第二加密算法获得授权信息密文,解析所述授权信息密文获得软件产品的授权信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710096734.8A CN106919810B (zh) | 2017-02-22 | 2017-02-22 | 注册码生成方法及装置、软件注册方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710096734.8A CN106919810B (zh) | 2017-02-22 | 2017-02-22 | 注册码生成方法及装置、软件注册方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106919810A CN106919810A (zh) | 2017-07-04 |
CN106919810B true CN106919810B (zh) | 2020-04-07 |
Family
ID=59454472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710096734.8A Active CN106919810B (zh) | 2017-02-22 | 2017-02-22 | 注册码生成方法及装置、软件注册方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106919810B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107563211A (zh) * | 2017-09-06 | 2018-01-09 | 荷花科技(北京)有限公司 | 安全加密方法和*** |
CN110213306B (zh) * | 2018-02-28 | 2022-03-08 | 北京金风科创风电设备有限公司 | 风力发电机组启动控制方法及装置 |
CN108548271B (zh) * | 2018-04-17 | 2020-04-21 | 奥克斯空调股份有限公司 | 空调监控及调试软件授权的方法及*** |
CN108897995A (zh) * | 2018-06-19 | 2018-11-27 | 河南正来电子科技有限公司 | 一种结合嵌入式设备的嵌入式软件加密注册方法 |
CN109450618B (zh) * | 2019-01-11 | 2021-12-31 | 无锡华大国奇科技有限公司 | 一种基于md5的加密方法及*** |
CN111859364A (zh) * | 2020-07-29 | 2020-10-30 | 杭州安恒信息技术股份有限公司 | 一种权限认证方法、装置、设备及存储介质 |
CN114912080B (zh) * | 2022-04-21 | 2024-07-16 | 健帆生物科技集团股份有限公司 | 注册码的生成方法、控制方法、终端设备及存储介质 |
CN115357869A (zh) * | 2022-10-19 | 2022-11-18 | 安徽华云安科技有限公司 | 一种基于多路径配置的软件激活方法和装置 |
CN116318982B (zh) * | 2023-03-10 | 2023-11-17 | 深圳市银拓科技有限公司 | 一种基于license的待授权产品软件激活方法及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1592190B (zh) * | 2003-08-29 | 2011-06-29 | 三星电子株式会社 | 硬件加密引擎和加密方法 |
CN102314572A (zh) * | 2011-10-14 | 2012-01-11 | 迈普通信技术股份有限公司 | 应用软件的使用授权方法、注册信息文件生成方法及装置 |
CN103093129A (zh) * | 2013-01-09 | 2013-05-08 | 上海大唐移动通信设备有限公司 | 一种用于软件许可的注册码生成方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8595510B2 (en) * | 2011-06-22 | 2013-11-26 | Media Patents, S.L. | Methods, apparatus and systems to improve security in computer systems |
-
2017
- 2017-02-22 CN CN201710096734.8A patent/CN106919810B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1592190B (zh) * | 2003-08-29 | 2011-06-29 | 三星电子株式会社 | 硬件加密引擎和加密方法 |
CN102314572A (zh) * | 2011-10-14 | 2012-01-11 | 迈普通信技术股份有限公司 | 应用软件的使用授权方法、注册信息文件生成方法及装置 |
CN103093129A (zh) * | 2013-01-09 | 2013-05-08 | 上海大唐移动通信设备有限公司 | 一种用于软件许可的注册码生成方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106919810A (zh) | 2017-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106919810B (zh) | 注册码生成方法及装置、软件注册方法及装置 | |
KR100188505B1 (ko) | 화일 액세스 보호방법 및 컴퓨터 액세스 가능 메모리 매체 | |
KR100200444B1 (ko) | 소프트웨어 객체 배포 방법 | |
US7475254B2 (en) | Method for authenticating software using protected master key | |
US6961852B2 (en) | System and method for authenticating software using hidden intermediate keys | |
KR100200443B1 (ko) | 소프트웨어 객체 배포 방법 | |
WO2021218331A1 (zh) | 离线软件授权方法、装置、设备及存储介质 | |
US7694153B2 (en) | Changing product behavior in accordance with license | |
US8769675B2 (en) | Clock roll forward detection | |
WO2020253469A1 (zh) | 脚本文件包的热更新方法及装置 | |
US20120303967A1 (en) | Digital rights management system and method for protecting digital content | |
CN112883361B (zh) | 应用程序的功能跳转方法、装置、计算机设备及存储介质 | |
US10536276B2 (en) | Associating identical fields encrypted with different keys | |
CA2308755A1 (en) | Reconfigurable secure hardware apparatus and method of operation | |
US11783094B2 (en) | System and method for providing protected data storage in data memory | |
CN111404892B (zh) | 数据监管方法、装置和服务器 | |
US7640438B2 (en) | System and method for protected content rendering | |
WO2019178981A1 (zh) | 自定义规则密码管理方法、装置、终端设备及存储介质 | |
CN113378224A (zh) | 医学影像存储方法、装置、设备及存储介质 | |
CN105049209B (zh) | 动态口令生成方法及装置 | |
KR101043255B1 (ko) | Usb 허브 보안 장치 및 이를 이용한 데이터 보안 방법 | |
CN111104693A (zh) | 一种Android平台软件数据破解方法、终端设备及存储介质 | |
CN111949996A (zh) | 安全私钥的生成方法、加密方法、***、设备及介质 | |
JP4989806B2 (ja) | 遠隔装置登録のためのシステムと方法 | |
CN116933298B (zh) | 一种科技成果数据加密处理方法、装置、存储介质及设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |