首页> 中国专利> 生成机器码和注册码的方法及软件注册和功能限制的方法

生成机器码和注册码的方法及软件注册和功能限制的方法

摘要

提供了一种生成机器码和注册码的方法及软件注册和功能限制的方法,其中,生成机器码的步骤为:获取计算机的设备信息;将设备信息中的每个字符进行加密,以产生第一字符串;确定第一字符串中的每个字符所对应的字符组;将第一字符串中的每个字符替换为对应的字符组中的任意一个字符,以形成机器码。本发明能够有效的保护软件开发成果。

著录项

  • 公开/公告号CN104123482A

    专利类型发明专利

  • 公开/公告日2014-10-29

    原文格式PDF

  • 申请/专利权人 攀钢集团攀枝花钢钒有限公司;

    申请/专利号CN201410322559.6

  • 发明设计人 曾虹云;

    申请日2014-07-08

  • 分类号G06F21/12;

  • 代理机构北京铭硕知识产权代理有限公司;

  • 代理人张川绪

  • 地址 617067 四川省攀枝花市东区向阳村

  • 入库时间 2023-12-17 01:39:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-07-27

    未缴年费专利权终止 IPC(主分类):G06F21/12 授权公告日:20170118 终止日期:20170708 申请日:20140708

    专利权的终止

  • 2017-01-18

    授权

    授权

  • 2014-12-03

    实质审查的生效 IPC(主分类):G06F21/12 申请日:20140708

    实质审查的生效

  • 2014-10-29

    公开

    公开

说明书

技术领域

本发明涉及软件验证领域,更具体地讲,涉及一种生成机器码和注册码 的方法及软件注册和限制软件功能的方法。

背景技术

目前,软件开发商为了保护自身的利益,会对软件开发成果进行保护。 通常的作法有:用户在购买了软件后,软件开发商会向用户提供一个注册码, 以使用户根据该注册码进行注册并使用软件。或者是,用户在购买了软件后, 运行安装程序产生一个机器码,然后用户将机器码发给软件开发商,由软件 开发商根据该机器码生成相应的注册码,并将注册码提供给用户以使用户进 行注册并使用软件。然而通过传统方法生成的机器码和注册码存在下述问题:

1.注册码可以多次在多台计算机上进行注册;

2.注册码只能在一台计算机上注册,但由于注册码的生成方法过于简 单,容易被破解。

因此,需要一种有效保护软件开发成果的方法。

发明内容

本发明的目的在于提供一种生成机器码和注册码的方法及软件注册和限 制软件功能的方法,其能够有效的保护软件开发成果。

本发明的一方面在于提供一种生成机器码的方法,包括如下步骤:获取 计算机的设备信息;将设备信息中的每个字符进行加密,以产生第一字符串; 确定第一字符串中的每个字符所对应的字符组;将第一字符串中的每个字符 替换为对应的字符组中的任意一个字符,以形成机器码。

可选地,所述设备信息包括:所述计算机的至少一个硬件序列号的部分 或全部的组合。

可选地,将设备信息中的每个字符进行加密,以产生第一字符串的步骤 包括:将设备信息中的每个字符替换为对应的ASCII码值,以产生ASCII码 值组;将ASCII码值组中的每个ASCII码值与第一预设值进行预定数学运算; 将进行预定数学运算后得到的结果按照ASCII码值组中的对应的ASCII码值 的顺序排列以产生第一字符串。

可选地,将ASCII码值组中的每个ASCII码值与第一预设值进行预定数 学运算的步骤包括:按照预定规则将ASCII码值组中的ASCII码值划分为N 个组,其中,N为大于零的自然数,每个组对应于一种预定数学运算;将每 个ASCII码值与第一预设值进行每个ASCII码值所在组所对应的预定数学运 算。

可选地,将ASCII码值组中的每个ASCII码值与第一预设值进行预定数 学运算的步骤还包括:确定每个ASCII码值与第一预设值进行预定数学运算 后得到的结果的位数是否达到预定位数,其中,所述预定位数是ASCII码表 中的所有ASCII码值分别与第一预设值进行不同组所对应的预定数学运算后 得到的结果的位数中的最大位数;在没有达到预定位数的结果之前补充零值, 以使该结果达到预定位数。

可选地,N为2,与第一组对应的预定数学运算为加法、减法和乘法中的 一种数学运算,与第二组对应的预定数学运算为加法、减法和乘法中的另一 种数学运算。

可选地,N为3,与第一组对应的预定数学运算为乘法,与第二组对应的 预定数学运算为加法,与第三组对应的预定数学运算为减法。

可选地,每个字符组包括至少一个汉字,不同字符组之间不存在相同的 汉字。

本发明的另一方面在于提供一种生成注册码的方法,包括如下步骤:接 收机器码;确定机器码中的每个字符所对应的字符组;将机器码中的每个字 符替换为对应的字符组所对应的字符,以得到第一字符串;对第一字符串进 行解密,以得到解密信息;将所述解密信息中的每个字符进行加密,以产生 第二字符串;确定第二字符串中的每个字符所对应的字符组;将第二字符串 中的每个字符替换为对应的字符组中的任意一个字符,以形成注册码。

可选地,对第一字符串进行解密,以得到解密信息的步骤包括:将第一 字符串划分为多个部分;将第一字符串划分后的每个部分与第一预设值进行 预定数学运算;将预定数学运算得到的每个数值替换为对应的ASCII码字符, 以得到解密信息。

可选地,将第一字符串划分为多个部分的步骤包括:以预定位数为单位 将第一字符串中的字符划分为多个部分,其中,所述预定位数是ASCII码表 中的所有ASCII码值分别与第一预设值进行不同组所对应的预定数学运算后 得到的结果的位数中的最大位数;将每个部分的从左起第一个不为零的字符 的左侧的零值去除。

可选地,将第一字符串划分后的每个部分与第一预设值进行预定数学运 算的步骤包括:按照预定规则将所述多个部分划分为N个组,其中,N为大 于零的自然数,每个组对应于一种预定数学运算;将每个部分与第一预设值 进行每个部分所在组所对应的预定数学运算。

可选地,将解密信息中的每个字符进行加密,以产生第二字符串的步骤 包括:将解密信息中的每个字符替换为对应的ASCII码值,以产生ASCII码 值组;将ASCII码值组中的每个ASCII码值与第二预设值进行预定数学运算; 将进行预定数学运算后得到的结果按照ASCII码值组中的对应的ASCII码值 的顺序排列以产生第二字符串。

可选地,将ASCII码值组中的每个ASCII码值与第二预设值进行预定数 学运算的步骤包括:按照预定规则将ASCII码值组中的ASCII码值划分为N 个组,其中,N为大于零的自然数,每个组对应于一种预定数学运算;将每 个ASCII码值与第二预设值进行每个ASCII码值所在组所对应的预定数学运 算。

可选地,将ASCII码值组中的每个ASCII码值与第二预设值进行预定数 学运算的步骤还包括:确定每个ASCII码值与第二预设值进行预定数学运算 后得到的结果的位数是否达到预定位数,其中,所述预定位数是ASCII码表 中的所有ASCII码值分别与第二预设值进行不同组所对应的预定数学运算后 得到的结果的位数中的最大位数;在没有达到预定位数的结果之前补充零值, 以使该结果达到预定位数。

可选地,N为2,与第一组对应的预定数学运算为加法、减法和乘法中的 一种数学运算,与第二组对应的预定数学运算为加法、减法和乘法中的另一 种数学运算。

可选地,N为3,与第一组对应的预定数学运算为乘法,与第二组对应的 预定数学运算为加法,与第三组对应的预定数学运算为减法。

可选地,每个字符组包括至少一个汉字,不同字符组之间不存在相同的 汉字。

本发明的另一方面在于提供一种软件注册的方法,包括如下步骤:获取 注册码;确定注册码中的每个字符所对应的字符组;将注册码中的每个字符 替换为对应的字符组所对应的字符,以得到第二字符串;对第二字符串进行 解密,以得到解密信息;获取计算机的设备信息;判断解密信息与获取的设 备信息是否一致;如果解密信息与获取的设备信息一致,则确定软件通过注 册。

可选地,还包括:在确定软件通过注册之后,在预置路径下创建注册文 件,将注册码写入到注册文件中,并将注册文件的创建时间修改为过去时间, 文件属性设置为隐藏。

可选地,如果解密信息与获取的设备信息不一致,则提示注册码错误。

可选地,对第二字符串进行解密,以得到解密信息的步骤包括:将第二 字符串划分为多个部分;将第二字符串划分后的每个部分与第二预设值进行 预定数学运算;将预定数学运算得到的每个数值替换为对应的ASCII码字符, 以得到解密信息。

可选地,将第二字符串划分为多个部分的步骤包括:以预定位数为单位 将第二字符串中的字符划分为多个部分,其中,所述预定位数是ASCII码表 中的所有ASCII码值分别与第二预设值进行不同组所对应的预定数学运算后 得到的结果的位数中的最大位数;将每个部分的从左起第一个不为零的字符 的左侧的零值去除。

可选地,将第二字符串划分后的每个部分与第二预设值进行预定数学运 算的步骤包括:按照预定规则将所述多个部分划分为N个组,其中,N为大 于零的自然数,每个组对应于一种预定数学运算;将每个部分与第二预设值 进行每个部分所在组所对应的预定数学运算。

可选地,每个字符组包括至少一个汉字,不同字符组之间不存在相同的 汉字。

本发明的另一方面在于提供一种限制软件功能的方法,包括如下步骤: 启动软件时查找预置路径下的注册文件;读取注册文件中的注册码;确定注 册码中的每个字符所对应的字符组;将注册码中的每个字符替换为对应的字 符组所对应的字符,以得到第二字符串;对第二字符串进行解密,以得到解 密信息;获取计算机的设备信息;判断解密信息与获取的设备信息是否一致; 如果解密信息与获取的设备信息一致,则开放软件全部功能。

可选地,如果解密信息与获取的设备信息不一致,则开放软件部分功能。

可选地,对第二字符串进行解密,以得到解密信息的步骤包括:将第二 字符串划分为多个部分;将第二字符串划分后的每个部分与第二预设值进行 预定数学运算;将预定数学运算得到的每个数值替换为对应的ASCII码字符, 以得到解密信息。

可选地,将第二字符串划分为多个部分的步骤包括:以预定位数为单位 将第二字符串中的字符划分为多个部分,其中,所述预定位数是ASCII码表 中的所有ASCII码值分别与第二预设值进行不同组所对应的预定数学运算后 得到的结果的位数中的最大位数;将每个部分的从左起第一个不为零的字符 的左侧的零值去除。

可选地,将第二字符串划分后的每个部分与第二预设值进行预定数学运 算的步骤包括:按照预定规则将所述多个部分划分为N个组,其中,N为大 于零的自然数,每个组对应于一种预定数学运算;将每个部分与第二预设值 进行每个部分所在组所对应的预定数学运算。

可选地,每个字符组包括至少一个汉字,不同字符组之间不存在相同的 汉字。

根据本发明的生成机器码和注册码的方法及软件注册和限制软件功能的 方法,能够有效的保护软件开发成果。

附图说明

通过下面结合附图进行的详细描述,本发明的上述和其它、特定和优点 将会变得更加清楚,其中:

图1示出根据本发明的实施例的生成机器码的方法的流程图;

图2示出根据本发明的实施例的将设备信息中的每个字符进行加密产生 第一字符串的方法的流程图;

图3示出根据本发明的实施例的生成注册码的方法的流程图;

图4示出根据本发明的实施例的对第一字符串进行解密得到解密信息的 方法的流程图;

图5示出根据本发明的实施例的软件注册的方法的流程图;

图6示出根据本发明的实施例的限制软件功能的方法的流程图。

具体实施方式

现在,将参照附图更充分地描述示例实施例,其中,一些示例性实施例 在附图中示出。

图1示出根据本发明的实施例的生成机器码的方法的流程图。

如图1所示,在步骤101,获取计算机的设备信息。设备信息包括:所 述计算机的至少一个硬件序列号的部分或全部的组合。例如,硬件序列号可 以为所述设备的CPU序列号、硬盘序列号、网卡序列号、显卡序列号等,设 备信息可以为CPU序列号、硬盘序列号、网卡序列号、显卡序列号等之中的 一个序列号的部分或多个序列号的部分的组合,也可以为CPU序列号、硬盘 序列号、网卡序列号、显卡序列号等之中的一个序列号的全部或多个序列号 的全部的组合。例如,可通过计算机的操作系统获取设备信息。

在一个示例中,获取的设备信息可以为硬盘序列号的部分,硬盘序列号 为“JP2940J82STPVV”,设备信息可为“JP2940J8”。

在步骤102,将设备信息中的每个字符进行加密,以产生第一字符串。 可利用各种加密算法对字符进行加密。

下面结合图2描述根据本发明的实施例的将设备信息中的每个字符进行 加密产生第一字符串的方法。

图2示出根据本发明的实施例的将设备信息中的每个字符进行加密产生 第一字符串的方法的流程图。

在步骤201,将设备信息中的每个字符替换为对应的ASCII码值,以产 生ASCII码值组。这里,替换是基于美国信息交换标准码表(ASCII码表) 进行的。即,在ASCII码表中查找到与字符相对应的数值,并将字符替换为 该相对应的数值,以产生ASCII码值组。

在一个示例中,将获取的设备信息“JP2940J8”替换为相对应的ASCII 码值得到的ASCII码值组为:74 80 50 57 52 48 74 56。

在步骤202,按照预定规则将ASCII码值组中的ASCII码值划分为N(N 为大于零的自然数)个组,每个组对应于一种预定数学运算。这里的预定规 则可以是各种能够进行分组的方法。例如,可以按预定个数进行分组、按奇 数位置和偶数位置进行分组。例如,每个组对应的预定数学运算可以为加法、 减法和乘法中的一种。应该理解,预定数学运算不限于此。

应该理解,当N=1时,将ASCII码值组中的全部ASCII码值划分为1个 组。换言之,不对ASCII码值组进行划分。同时,在N=1时,ASCII码值组 中的每个ASCII码值均进行相同的预定数学运算。预定数学运算可以为加法、 减法或乘法。

在一个示例中,将ASCII码值组“74 80 50 57 52 48 74 56”以4个为 单位划分为2个组,第一组为:74 80 50 57,第二组为:52 48 74 56。第 一组所对应的预定数学运算为加法,第二组所对应的预定数学运算为减法。

在步骤203,将每个ASCII码值与第一预设值进行每个ASCII码值所在 组所对应的预定数学运算。即,在步骤202分组后的每个组对应一种预定数 学运算,每个组中的ASCII码值与第一预设值进行所在组所对应的一种预定 数学运算。例如:步骤202中的N为2时,与第一组对应的预定数学运算可 以为加法、减法和乘法中的一种数学运算,与第二组对应的预定数学运算可 以为加法、减法和乘法中的另一种数学运算。步骤202中的N为3时,与第 一组对应的预定数学运算可以为乘法,与第二组对应的预定数学运算可以为 加法,与第三组对应的预定数学运算可以为减法。第一预设值可以为任意整 数,可以理解,当预定数学运算为乘法时,第一预设值为非零的任意整数。

在一个示例中,将ASCII码值组进行分组后得到第一组为:74 80 50 57, 第二组为:52 48 74 56,第一预设值为7,第一组对应的预定数学运算为加 法,第二组对应的预定数学运算为减法,则第一组与第一预设值进行对应的 预定数学运算后得到的结果为:81 87 57 64,第二组与第一预设值进行对应 的预定数学运算后得到的结果为:45 41 67 49。

在另一个示例中,将ASCII码值组进行分组后得到第一组为:74 80 50 57, 第二组为:52 48 74 56,第一预设值为50,第一组对应的预定数学运算为 加法,第二组对应的预定数学运算为减法,则第一组与第一预设值进行对应 的预定数学运算后得到的结果为:124 130 100 107,第二组与第一预设值进 行对应的预定数学运算后得到的结果为:2 -2 24 6。

在步骤204,确定每个进行预定数学运算后得到的结果的位数是否达到 预定位数。应该理解,当在运算得到的结果中带有负号时,结果的位数包括 负号的位数和数字的位数;当在运算得到的结果中不带有负号时,只包括数 字的位数。

预定位数为ASCII码表中的所有ASCII码值分别与第一预设值进行不同 组所对应的预定数学运算后得到的结果的位数中的最大位数。此处的结果的 位数与前述相同,当在运算得到的结果中带有负号时,结果的位数包括负号 的位数和数字的位数;当在运算得到的结果中不带有负号时,只包括数字的 位数。基于ASCII码表可知,ASCII码值的取值范围为[0,127],则ASCII 码表中的所有ASCII码值分别与第一预设值进行不同组所对应的预定数学运 算后得到的结果中位数最多的数值所具有的位数为预定位数。

在一个示例中,第一预设值为7,第一组对应的预定数学运算为加法, 第二组对应的预定数学运算为减法,则在ASCII码表中的所有ASCII码值分 别加上第一预设值7后得到的所有的结果的位数和ASCII码表中的所有ASCII 码分别减去第一预设值7后得到的所有的结果的位数中的最大位数为3位。 即,预定位数为3位。

在另一个示例中,第一预设值为50,第一组对应的预定数学运算为加法, 第二组对应的预定数学运算为减法,则在ASCII码表中的所有ASCII码值分 别加上第一预设值50后得到的所有的结果的位数和ASCII码表中的所有 ASCII码分别减去第一预设值50后得到的所有的结果的位数中的最大位数为 3位。即,预定位数为3位。

在步骤205,在没有达到预定位数的结果之前补充零值,以使该结果达 到预定位数。即,在步骤203得到的结果中位数小于预定位数的结果之前补 充零值。

在一个示例中,在步骤203所示的示例中进行预定数学运算后得到的结 果为:81 87 57 64 45 41 67 49,由于在步骤204所示的示例中对步骤203 所示的示例的预定位数确定为3,所以在没有达到预定位数的结果之前补充 零值后得到:081 087 057 064 045 041 067 049。

在另一个示例中,在步骤203所示的示例中进行预定数学运算后得到的 结果为:124 130 100 107 2 -2 24 6,由于在步骤204所示的示例中对步骤 203所示的示例的预定位数确定为3,所以在没有达到预定位数的结果之前补 充零值后得到:124 130 100 107 002 0-2 024 006。

在步骤206,将进行预定数学运算后得到的结果按照在步骤201得到的 ASCII码值组中的对应的ASCII码值的顺序排列以产生第一字符串。即,将 步骤205得到的结果仍然按照ASCII码值组中的对应的ASCII码值的顺序排 列产生第一字符串。

在一个示例中,步骤205得到的结果为:081 087 057 064 045 041 067  049,按照ASCII码值组中的对应的ASCII码值的顺序排列得到第一字符串 “081087057064045041067049”。

在另一个示例中,步骤205得到的结果为:124 130 100 107 002 0-2 024  006,按照ASCII码值组中的对应的ASCII码值的顺序排列得到第一字符串 “1241301001070020-2024006”。

返回图1,在步骤103,确定第一字符串中的每个字符所对应的字符组。 在一个示例中,第一字符串中的每个字符与一个字符组相对应,每个字符组 包括至少一个汉字,不同字符组之间不存在相同的汉字。具体地,字符组可 以为11个,每个字符组内容如下:

字符组(0):掺摻婵鋋廛谄肠厂麨瞋漦瘛冲摴厨锄諔嘬疮摐噇踳赐醋摧;

字符组(1):鰆镫镦镄铧锏镢鐍锎镣续铹鏻聍镤镨缱镪黥謦蝾襦繻蠕鳃;

字符组(2):饆璨蝉繟儭艟懤雏幮储蹙窜鄜镐镉环秽劐镓铠镇织镏镎聂;

字符组(3):踩粲恻插诧琛嗔脭絺饬傺愁稠酬蜍楚揣歂蠢跐琮催瘁搓脞;

字符组(4):怊伡疢宬怵穿舡春殂促毒度耏钆宫剞刭俓咻庥胥叙宣怔枯;

字符组(5):蟾铲鲳惩迟宠畴辞蹴祷镝颠牍犊镜铿馐选鎏镂镘锚镆锘迁;

字符组(6):艑綵嘈察瘥僝嫦玚綝称诚铖酲铳搊绸裯殠搐搋僢怆慈雌粹;

字符组(7):参曹侧钗产娼常徜唱巢晨趻偁琤瓻匙豉舂崇紬偢处绌啜船;

字符组(8):锛餐憯穇舱糙蹅侪幨阊氅鋹谌踸赪褫憧瘳踹遄陲锤輴錞糍;

字符组(9):擦縩操艚螬懆馇锸禅偿韔鼌帱憷歜黜膗聪独镀锻锷锅锾徽;

字符组(-):锉嘟锇锋敷锆馓骟释孀铴璺啮镍拧狞阕阙钿堵钴钾剿捷前。

每个字符组的()内的字符为与该字符组相对应的字符。

在步骤104,将第一字符串中的每个字符替换为对应的字符组中的任意 一个字符,形成机器码。即,针对第一字符串中的每个字符,从与该字符相 对应的字符组中随机抽取一个字符,并替换该字符。

在一个示例中,第一字符串“081087057064045041067049”中的每个字 符进行替换后得到的机器码为:婵舱锏肠侪唱冲蹴趻諔酲毒锄怵颠摐耏铹疮 绸舂踳剞韔。

在另一个示例中,第一字符串“1241301001070020-2024006”中的每个 字符进行替换后得到的机器码为:镢繟宬镄恻瘛锏摴厨续嘬钗摐摧雏锄啮艟 漦璨穿麨瞋称。

根据图1所示的根据本发明的实施例的生成机器码的方法及图2所示的 根据本发明的实施例的将设备信息中的每个字符进行加密产生第一字符串的 方法,可以基于计算机的设备信息产生用于生成注册码的机器码,该机器码 由一组汉字组成,从而有效的保护软件开发成果。

图3示出根据本发明的实施例的生成注册码的方法的流程图。

如图3所示,在步骤301,接收机器码。这里,所接收的机器码可以是 电子终端发送的机器码,也可以是人工输入的机器码。

在一个示例中,接收的机器码为:婵舱锏肠侪唱冲蹴趻諔酲毒锄怵颠摐 耏铹疮绸舂踳剞韔。

在另一个示例中,接收的机器码为:镢繟宬镄恻瘛锏摴厨续嘬钗摐摧雏 锄啮艟漦璨穿麨瞋称。

在步骤302,确定机器码中的每个字符所对应的字符组。即,确定机器 码中的每个字符存在于哪个字符组中。这里,每个字符组包括至少一个汉字, 不同字符组之间不存在相同的汉字。

在一个示例中,机器码为:婵舱锏肠侪唱冲蹴趻諔酲毒锄怵颠摐耏铹疮 绸舂踳剞韔。机器码中的一个字符为“婵”,基于前述字符组的内容,可知, 该字符“婵”存在于字符组(0)中,即,与该字符“婵”对应的字符组为字 符组(0)。

在步骤303,将机器码中的每个字符替换为对应的字符组所对应的字符, 得到第一字符串。即,基于前述字符组与字符的对应关系,将机器码中的每 个字符替换为对应的字符组所对应的字符。

在一个示例中,机器码中的一个字符“婵”可替换为对应的字符组(0) 所对应的字符“0”,以此类推,机器码“婵舱锏肠侪唱冲蹴趻諔酲毒锄怵颠 摐耏铹疮绸舂踳剞韔”中的每个字符进行替换后可得到第一字符串为: 081087057064045041067049。

在另一个示例中,机器码“镢繟宬镄恻瘛锏摴厨续嘬钗摐摧雏锄啮艟漦 璨穿麨瞋称”中的每个字符进行替换后可得到第一字符串为:124130100107 0020-2024006。

在步骤304,对第一字符串进行解密,以得到解密信息。可利用与加密 算法对应的解密算法对第一字符串进行解密。

下面结合图4描述根据本发明的实施例的对第一字符串进行解密得到解 密信息的方法。这里,第一字符串利用图2所示的方法被加密。可以理解, 这里得到的解密信息为设备信息。

图4示出根据本发明的实施例的对第一字符串进行解密得到解密信息的 方法的流程图。

在步骤401,以预定位数为单位将第一字符串中的字符划分为多个部分。 这里,预定位数为ASCII码表中的所有ASCII码值分别与第一预设值进行不 同组所对应的预定数学运算后得到的结果的位数中的最大位数。此处的结果 的位数与前述相同,当在运算得到的结果中带有负号时,结果的位数包括负 号的位数和数字的位数;当在运算得到的结果中不带有负号时,只包括数字 的位数。第一预设值与对应的加密过程中的第一预设值相同,不同组对应的 预定数学运算为对应的加密过程中的不同组所对应的预定数学运算,预定位 数的确定方法与对应的加密过程中的预定位数确定方法相同。即,这里的预 定位数与对应的加密过程中的预定位数相同。

在一个示例中,第一字符串为:081087057064045041067049,第一预设 值为7,对应的加密过程中不同组所对应的预定数学运算分别为加法和减法, 预定位数为3位。将第一字符串按预定位数3为单位划分得到的多个部分为: 081 087 057 064 045 041 067 049。

在另一个示例中,第一字符串为:1241301001070020-2024006,第一预 设值为7,对应的加密过程中不同组所对应的预定数学运算分别为加法和减 法,预定位数为3位。将第一字符串按预定位数3为单位划分得到的多个部 分为:124 130 100 107 002 0-2 024 006。

在步骤402,将每个部分的从左起第一个不为零的字符的左侧的零值去 除。

在一个示例中,将步骤401所示的示例中划分得到的多个部分“081 087  057 064 045 041 067 049”的从左起第一个不为零的字符的左侧的零值去除 得到:81 87 57 64 45 41 67 49。

在另一示例中,将步骤401所示的示例中划分得到的多个部分“124 130  100 107 002 0-2 024 006”的从左起第一个不为零的字符的左侧的零值去除 得到:124 130 100 107 2 -2 24 6。

在步骤403,按照预定规则将步骤401得到的多个部分划分为N(N为大 于零的自然数)个组,每个组对应于一种预定数学运算。这里的预定规则可 以是与对应的加密过程中的预定规则相同的各种能够进行分组的方法,例如, 对应的加密过程中按预定个数进行分组,这里的预定规则就是按预定个数进 行分组,对应的加密过程中按奇数位置和偶数位置进行分组,这里的预定规 则就是按奇数位置和偶数位置进行分组。每个组对应的预定数学运算为对应 的加密过程中相应组对应的预定数学运算的逆运算。例如,对应的加密过程 中,第一组对应的预定数学运算为加法、第二组对应的预定数学运算为减法、 第三组对应的预定数学运算为乘法,那么这里的第一组对应的预定数学运算 为减法、第二组对应的预定数学运算为加法、第三组对应的预定数学运算为 除法。

在一个示例中,将步骤402所示的示例中得到的多个部分“81 87 57 64  45 41 67 49”按与对应的加密过程中的预定规则相同的方法进行分组。即, 以4个为单位划分为2个组,第一组为:81 87 57 64,第二组为:45 41 67  49。由于在步骤401所示的示例中的第一字符串 “081087057064045041067049”所对应的加密过程中,第一组所对应的预定 数学预算为加法,第二组所对应的预定数学运算为减法,所以这里的第一组 所对应的预定数学运算为减法,第二组所对应的预定数学运算为加法。

在另一个示例中,将步骤402所示的示例中得到的多个部分“124 130 100  107 2 -2 24 6”按与对应的加密过程中的预定规则相同的方法进行分组。即, 以4个为单位划分为2个组,第一组为:124 130 100 107,第二组为:2 -2  24 6。由于在步骤401所示的示例中的第一字符串 “1241301001070020-2024006”所对应的加密过程中,第一组所对应的预定 数学预算为加法,第二组所对应的预定数学运算为减法,所以这里的第一组 所对应的预定数学运算为减法,第二组所对应的预定数学运算为加法。

在步骤404,将每个部分与第一预设值进行每个部分所在组所对应的预 定数学运算。即,在步骤403分组后的每个组对应一种预定数学运算,每个 组中的每个部分与第一预设值进行所在组所对应的一种预定数学运算。

在一个示例中,第一预设值为7,第一组“81 87 57 64”对应的预定数 学运算为减法,第二组“45 41 67 49”对应的预定数学运算为加法,则第一 组与第一预设值进行对应的预定数学运算后得到的结果为:74 80 50 57,第 二组与第一预设值进行对应的预定数学运算后得到的结果为:52 48 74 56。

在另一个示例中,第一预设值为50,第一组“124 130 100 107”对应 的预定数学运算为减法,第二组“2 -2 24 6”对应的预定数学运算为加法, 则第一组与第一预设值进行对应的预定数学运算后得到的结果为:74 80 50  57,第二组与第一预设值进行对应的预定数学运算后得到的结果为:52 48 74  56。

在步骤405,将预定数学运算得到的每个数值替换为对应的ASCII码字 符,以得到解密信息。这里,替换是基于美国信息交换标准码表(ASCII码 表)进行的。即,在ASCII码表中查找到与数值相对应的字符,并将数值替 换为相应的字符,以得到解密信息。

在一个示例中,将预定数学运算得到的结果“74 80 50 57 52 48 74 56” 替换为ASCII码字符得到解密信息为:JP2940J8。

返回图3,在步骤305,将步骤304解密得到的解密信息中的每个字符进 行加密,产生第二字符串。第二字符串与第一字符串不同。可利用各种加密 算法对字符进行加密。

在一个示例中,这里的加密方法可与图2所示的根据本发明的实施例的 将设备信息中的每个字符进行加密产生第一字符串的方法相同,区别仅在于 步骤305中使用第二预设值来对每个ASCII码值进行每个ASCII码值所在组 所对应的预定数学运算,而在图2所示的方法中使用的是第一预设值。第二 预设值为不同于第一预设值的任意整数,从而使得加密产生的第二字符串与 第一字符串不同,可以理解,当预定数学运算为乘法时,第二预设值为非零 的不同于第一预设值的任意整数。

在步骤306,确定第二字符串中的每个字符所对应的字符组。在一个示 例中,第二字符串中的每个字符与一个字符组相对应,每个字符组包括至少 一个汉字,不同字符组之间不存在相同的汉字。具体地,字符组可以为11个, 每个字符组内容如前所述。每个字符组的()内的字符为与该字符组相对应 的字符。

在步骤307,将第二字符串中的每个字符替换为对应的字符组中的任意 一个字符,形成注册码。即,针对第二字符串中的每个字符,从与该字符相 对应的字符组中随机抽取一个字符,并替换该字符。

在一个示例中,第二字符串为:0354036003300337-228-232-206-224, 对第二字符串中的每个字符进行替换后得到注册码为:噇絺镝舡冲愁诚厨瞋 絺饬諔厂蜍蠢匙释繟儭赪钿劐琮储骟铠疮铳剿织镏刭。

根据图3所示的根据本发明的实施例的生成注册码的方法及图4所示的 根据本发明的实施例的对第一字符串进行解密得到解密信息的方法,可以基 于获取的机器码生成注册码,该注册码由一组汉字组成,从而有效的保护软 件开发成果。

图5示出根据本发明的实施例的软件注册的方法的流程图。

如图5所示,在步骤501,获取注册码。这里,获取的注册码可以是服 务器发送的注册码,也可以是人工输入的注册码。

在步骤502,确定注册码中的每个字符所对应的字符组。即,确定注册 码中的每个字符存在于哪个字符组中。这里,每个字符组包括至少一个汉字, 不同字符组之间不存在相同的汉字。

在一个示例中,注册码为:噇絺镝舡冲愁诚厨瞋絺饬諔厂蜍蠢匙释繟儭 赪钿劐琮储骟铠疮铳剿织镏刭。对于注册码中的字符“噇”,基于前述字符组 的内容,可知,该字符“噇”存在于字符组(0)中。即,与该字符“噇”对 应的字符组为字符组(0)。

在步骤503,将注册码中的每个字符替换为对应的字符组所对应的字符, 得到第二字符串。即,基于前述字符组与字符的对应关系,将注册码中的每 个字符替换为对应的字符组所对应的字符。

在一个示例中,注册码“噇絺镝舡冲愁诚厨瞋絺饬諔厂蜍蠢匙释繟儭赪 钿劐琮储骟铠疮铳剿织镏刭”中的每个字符进行替换后可得到第二字符串为: 0354036003300337-228-232-206-224。

在步骤504,对第二字符串进行解密,得到解密信息。可利用与加密算 法对应的解密算法对第二字符串进行解密。例如,在利用第二预设值使用图 2所示的加密方法得到第二字符串时,这里的解密方法与图4所示的根据本 发明的实施例的对第一字符串进行解密得到解密信息的方法相同,区别在于 步骤504中使用第二预设值来对第二字符串进行解密,而在图4的方法中则 是使用第一预设值对第一字符串进行解密。

在步骤505,获取计算机的设备信息。这里,所获取的设备信息为当前 进行注册的计算机的设备信息。例如,可通过计算机的操作系统获取设备信 息。

在步骤506,判断在步骤504得到的解密信息与步骤505获取的设备信 息是否一致,如果解密信息与步骤505获取的设备信息一致,则执行步骤507, 确定软件通过注册。

在步骤508,在确定软件通过注册后要在预置路径下创建注册文件,将 注册码写入到注册文件中,并将注册文件的创建时间修改为过去时间,文件 属性设置为隐藏。这里,预置路径可以设置为任意路径,例如,可以设置预 置路径为C:\windows\system32\或C:\winnt\system32\。创建的注册文件用 于存储注册码,文件名和扩展名可以任意设置,例如,可以设置注册文件的 文件名和扩展名为C0MCAT.dll。过去时间可以为当前时间以前的任一时间, 例如,可以为2004-8-1720:00:00。

在步骤506中如果判断解密信息与步骤505获取的设备信息不一致,则 执行步骤509,提示注册码错误。

根据图5所示的根据本发明的实施例的软件注册的方法,可以基于获取 的注册码进行软件注册,该注册码由一组汉字组成,同时在注册过程中对注 册码进行验证并将注册文件的保存路径、文件名等进行设置,从而有效的保 护软件开发成果。

图6示出根据本发明的实施例的限制软件功能的方法的流程图。

如图6所示,在步骤601,在启动软件时查找预置路径下的注册文件。 这里,预置路径为用于存储注册文件的位置,注册文件用于存储注册码。

在步骤602,读取步骤601查找到的注册文件中的注册码。

在步骤603,确定注册码中的每个字符所对应的字符组,即,确定注册 码中的每个字符存在于哪个字符组中。这里,每个字符组包括至少一个汉字, 不同字符组之间不存在相同的汉字。

在步骤604,将注册码中的每个字符替换为对应的字符组所对应的字符, 得到第二字符串。即,基于前述字符组与字符的对应关系,将注册码中的每 个字符替换为对应的字符组所对应的字符。

在步骤605,对第二字符串进行解密,得到解密信息。可利用与加密算 法对应的解密算法对第二字符串进行解密。

例如,在利用第二预设值使用图2所示的加密方法得到第二字符串时, 这里的解密方法与图4所示的根据本发明的实施例的对第一字符串进行解密 得到解密信息的方法相同,区别在于步骤605中使用第二预设值来对第二字 符串进行解密,而在图4的方法中则是使用第一预设值对第一字符串进行解 密。

在步骤606,获取计算机的设备信息。这里,所获取的设备信息为当前 已经安装软件的计算机的设备信息。例如,可通过计算机的操作系统获取设 备信息。

在步骤607,判断在步骤605得到的解密信息与步骤606获取的设备信 息是否一致,如果解密信息与步骤606获取的设备信息一致,则执行步骤608, 开放软件全部功能。即,用户可使用软件的全部功能。

在步骤607中如果判断解密信息与步骤606获取的设备信息不一致,则 执行步骤609,开放软件部分功能。即,仅将软件的部分功能提供给用户使 用。

根据图6所示的根据本发明的实施例的限制软件功能的方法,对注册文 件中的注册码进行验证,并根据验证的结果来控制软件向用户开放的功能, 从而有效的保护软件开发成果。

根据本发明的生成机器码和注册码的方法及软件注册和功能限制的方 法,能够有效的保护软件开发成果。

此外,根据本发明的示例性实施例的上述方法可以被实现为计算机程序, 从而当运行该程序时,实现上述方法。

虽然已表示和描述了本发明的一些实施例,但本领域技术人员应该理解, 在不脱离由权利要求及其等同物限定其范围的本发明的原理和精神的情况 下,可以对这些实施例进行修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号