CN104123482A - 生成机器码和注册码的方法及软件注册和功能限制的方法 - Google Patents
生成机器码和注册码的方法及软件注册和功能限制的方法 Download PDFInfo
- Publication number
- CN104123482A CN104123482A CN201410322559.6A CN201410322559A CN104123482A CN 104123482 A CN104123482 A CN 104123482A CN 201410322559 A CN201410322559 A CN 201410322559A CN 104123482 A CN104123482 A CN 104123482A
- Authority
- CN
- China
- Prior art keywords
- character
- group
- value
- predetermined mathematical
- mathematical computing
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 123
- 239000013589 supplement Substances 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 12
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 8
- 235000009421 Myristica fragrans Nutrition 0.000 description 7
- 239000001115 mace Substances 0.000 description 7
- 206010016275 Fear Diseases 0.000 description 5
- 210000000936 intestine Anatomy 0.000 description 5
- 238000007747 plating Methods 0.000 description 5
- 241000269420 Bufonidae Species 0.000 description 4
- 229910052692 Dysprosium Inorganic materials 0.000 description 4
- 229910052687 Fermium Inorganic materials 0.000 description 4
- 206010019133 Hangover Diseases 0.000 description 4
- 229910052766 Lawrencium Inorganic materials 0.000 description 4
- KBQHZAAAGSGFKK-UHFFFAOYSA-N dysprosium atom Chemical compound [Dy] KBQHZAAAGSGFKK-UHFFFAOYSA-N 0.000 description 4
- MIORUQGGZCBUGO-UHFFFAOYSA-N fermium Chemical compound [Fm] MIORUQGGZCBUGO-UHFFFAOYSA-N 0.000 description 4
- 239000010437 gem Substances 0.000 description 4
- 239000010977 jade Substances 0.000 description 4
- CNQCVBJFEGMYDW-UHFFFAOYSA-N lawrencium atom Chemical compound [Lr] CNQCVBJFEGMYDW-UHFFFAOYSA-N 0.000 description 4
- 238000004080 punching Methods 0.000 description 4
- PXHVJJICTQNCMI-UHFFFAOYSA-N Nickel Chemical compound [Ni] PXHVJJICTQNCMI-UHFFFAOYSA-N 0.000 description 2
- 229910001369 Brass Inorganic materials 0.000 description 1
- 229910052686 Californium Inorganic materials 0.000 description 1
- 241000931705 Cicada Species 0.000 description 1
- 244000078127 Eleusine coracana Species 0.000 description 1
- 235000013499 Eleusine coracana subsp coracana Nutrition 0.000 description 1
- 229910052688 Gadolinium Inorganic materials 0.000 description 1
- 244000068988 Glycine max Species 0.000 description 1
- 235000010469 Glycine max Nutrition 0.000 description 1
- 229910052781 Neptunium Inorganic materials 0.000 description 1
- 244000131316 Panax pseudoginseng Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 229910052777 Praseodymium Inorganic materials 0.000 description 1
- 241000269821 Scombridae Species 0.000 description 1
- 241000630524 Taractes rubescens Species 0.000 description 1
- QCWXUUIWCKQGHC-UHFFFAOYSA-N Zirconium Chemical compound [Zr] QCWXUUIWCKQGHC-UHFFFAOYSA-N 0.000 description 1
- 239000010951 brass Substances 0.000 description 1
- BDOSMKKIYDKNTQ-UHFFFAOYSA-N cadmium atom Chemical group [Cd] BDOSMKKIYDKNTQ-UHFFFAOYSA-N 0.000 description 1
- 244000309466 calf Species 0.000 description 1
- HGLDOAKPQXAFKI-UHFFFAOYSA-N californium atom Chemical compound [Cf] HGLDOAKPQXAFKI-UHFFFAOYSA-N 0.000 description 1
- 210000002939 cerumen Anatomy 0.000 description 1
- MIAJZAAHRXPODB-UHFFFAOYSA-N cobalt potassium Chemical compound [K].[Co] MIAJZAAHRXPODB-UHFFFAOYSA-N 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 235000013305 food Nutrition 0.000 description 1
- UIWYJDYFSGRHKR-UHFFFAOYSA-N gadolinium atom Chemical compound [Gd] UIWYJDYFSGRHKR-UHFFFAOYSA-N 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 235000020640 mackerel Nutrition 0.000 description 1
- LFNLGNPSGWYGGD-UHFFFAOYSA-N neptunium atom Chemical compound [Np] LFNLGNPSGWYGGD-UHFFFAOYSA-N 0.000 description 1
- 229910052759 nickel Inorganic materials 0.000 description 1
- MWUXSHHQAYIFBG-UHFFFAOYSA-N nitrogen oxide Inorganic materials O=[N] MWUXSHHQAYIFBG-UHFFFAOYSA-N 0.000 description 1
- ORQBXQOJMQIAOY-UHFFFAOYSA-N nobelium Chemical compound [No] ORQBXQOJMQIAOY-UHFFFAOYSA-N 0.000 description 1
- 229910052762 osmium Inorganic materials 0.000 description 1
- SYQBFIAQOQZEGI-UHFFFAOYSA-N osmium atom Chemical compound [Os] SYQBFIAQOQZEGI-UHFFFAOYSA-N 0.000 description 1
- XYFCBTPGUUZFHI-UHFFFAOYSA-O phosphonium Chemical compound [PH4+] XYFCBTPGUUZFHI-UHFFFAOYSA-O 0.000 description 1
- 239000002574 poison Substances 0.000 description 1
- 231100000614 poison Toxicity 0.000 description 1
- PUDIUYLPXJFUGB-UHFFFAOYSA-N praseodymium atom Chemical compound [Pr] PUDIUYLPXJFUGB-UHFFFAOYSA-N 0.000 description 1
- 238000003756 stirring Methods 0.000 description 1
- 235000021419 vinegar Nutrition 0.000 description 1
- 239000000052 vinegar Substances 0.000 description 1
- 229910052726 zirconium Inorganic materials 0.000 description 1
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)
- Document Processing Apparatus (AREA)
Abstract
提供了一种生成机器码和注册码的方法及软件注册和功能限制的方法,其中,生成机器码的步骤为:获取计算机的设备信息;将设备信息中的每个字符进行加密,以产生第一字符串;确定第一字符串中的每个字符所对应的字符组;将第一字符串中的每个字符替换为对应的字符组中的任意一个字符,以形成机器码。本发明能够有效的保护软件开发成果。
Description
技术领域
本发明涉及软件验证领域,更具体地讲,涉及一种生成机器码和注册码的方法及软件注册和限制软件功能的方法。
背景技术
目前,软件开发商为了保护自身的利益,会对软件开发成果进行保护。通常的作法有:用户在购买了软件后,软件开发商会向用户提供一个注册码,以使用户根据该注册码进行注册并使用软件。或者是,用户在购买了软件后,运行安装程序产生一个机器码,然后用户将机器码发给软件开发商,由软件开发商根据该机器码生成相应的注册码,并将注册码提供给用户以使用户进行注册并使用软件。然而通过传统方法生成的机器码和注册码存在下述问题:
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 067049,按照ASCII码值组中的对应的ASCII码值的顺序排列得到第一字符串“081087057064045041067049”。
在另一个示例中,步骤205得到的结果为:124 130 100 107 002 0-2 024006,按照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。
在另一个示例中,机器码“镢繟宬镄恻瘛锏摴厨续嘬钗摐摧雏锄啮艟漦璨穿麨瞋称”中的每个字符进行替换后可得到第一字符串为:1241301001070020-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 087057 064 045 041 067 049”的从左起第一个不为零的字符的左侧的零值去除得到:81 87 57 64 45 41 67 49。
在另一示例中,将步骤401所示的示例中划分得到的多个部分“124 130100 107 002 0-2 024 006”的从左起第一个不为零的字符的左侧的零值去除得到:124 130 100 107 2 -2 24 6。
在步骤403,按照预定规则将步骤401得到的多个部分划分为N(N为大于零的自然数)个组,每个组对应于一种预定数学运算。这里的预定规则可以是与对应的加密过程中的预定规则相同的各种能够进行分组的方法,例如,对应的加密过程中按预定个数进行分组,这里的预定规则就是按预定个数进行分组,对应的加密过程中按奇数位置和偶数位置进行分组,这里的预定规则就是按奇数位置和偶数位置进行分组。每个组对应的预定数学运算为对应的加密过程中相应组对应的预定数学运算的逆运算。例如,对应的加密过程中,第一组对应的预定数学运算为加法、第二组对应的预定数学运算为减法、第三组对应的预定数学运算为乘法,那么这里的第一组对应的预定数学运算为减法、第二组对应的预定数学运算为加法、第三组对应的预定数学运算为除法。
在一个示例中,将步骤402所示的示例中得到的多个部分“81 87 57 6445 41 67 49”按与对应的加密过程中的预定规则相同的方法进行分组。即,以4个为单位划分为2个组,第一组为:81 87 57 64,第二组为:45 41 6749。由于在步骤401所示的示例中的第一字符串“081087057064045041067049”所对应的加密过程中,第一组所对应的预定数学预算为加法,第二组所对应的预定数学运算为减法,所以这里的第一组所对应的预定数学运算为减法,第二组所对应的预定数学运算为加法。
在另一个示例中,将步骤402所示的示例中得到的多个部分“124 130 100107 2 -2 24 6”按与对应的加密过程中的预定规则相同的方法进行分组。即,以4个为单位划分为2个组,第一组为:124 130 100 107,第二组为:2 -224 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 5057,第二组与第一预设值进行对应的预定数学运算后得到的结果为:52 48 7456。
在步骤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所示的根据本发明的实施例的限制软件功能的方法,对注册文件中的注册码进行验证,并根据验证的结果来控制软件向用户开放的功能,从而有效的保护软件开发成果。
根据本发明的生成机器码和注册码的方法及软件注册和功能限制的方法,能够有效的保护软件开发成果。
此外,根据本发明的示例性实施例的上述方法可以被实现为计算机程序,从而当运行该程序时,实现上述方法。
虽然已表示和描述了本发明的一些实施例,但本领域技术人员应该理解,在不脱离由权利要求及其等同物限定其范围的本发明的原理和精神的情况下,可以对这些实施例进行修改。
Claims (31)
1.一种生成机器码的方法,包括如下步骤:
获取计算机的设备信息;
将设备信息中的每个字符进行加密,以产生第一字符串;
确定第一字符串中的每个字符所对应的字符组;
将第一字符串中的每个字符替换为对应的字符组中的任意一个字符,以形成机器码。
2.根据权利要求1所述的方法,其特征在于,所述设备信息包括:
所述计算机的至少一个硬件序列号的部分或全部的组合。
3.根据权利要求1所述的方法,其特征在于,将设备信息中的每个字符进行加密,以产生第一字符串的步骤包括:
将设备信息中的每个字符替换为对应的ASCII码值,以产生ASCII码值组;
将ASCII码值组中的每个ASCII码值与第一预设值进行预定数学运算;
将进行预定数学运算后得到的结果按照ASCII码值组中的对应的ASCII码值的顺序排列以产生第一字符串。
4.根据权利要求3所述的方法,其特征在于,将ASCII码值组中的每个ASCII码值与第一预设值进行预定数学运算的步骤包括:
按照预定规则将ASCII码值组中的ASCII码值划分为N个组,其中,N为大于零的自然数,每个组对应于一种预定数学运算;
将每个ASCII码值与第一预设值进行每个ASCII码值所在组所对应的预定数学运算。
5.根据权利要求4所述的方法,其特征在于,将ASCII码值组中的每个ASCII码值与第一预设值进行预定数学运算的步骤还包括:
确定每个ASCII码值与第一预设值进行预定数学运算后得到的结果的位数是否达到预定位数,其中,所述预定位数是ASCII码表中的所有ASCII码值分别与第一预设值进行不同组所对应的预定数学运算后得到的结果的位数中的最大位数;
在没有达到预定位数的结果之前补充零值,以使该结果达到预定位数。
6.根据权利要求5所述的方法,其特征在于,N为2,与第一组对应的预定数学运算为加法、减法和乘法中的一种数学运算,与第二组对应的预定数学运算为加法、减法和乘法中的另一种数学运算。
7.根据权利要求5所述的方法,其特征在于,N为3,与第一组对应的预定数学运算为乘法,与第二组对应的预定数学运算为加法,与第三组对应的预定数学运算为减法。
8.根据权利要求1所述的方法,其特征在于,每个字符组包括至少一个汉字,不同字符组之间不存在相同的汉字。
9.一种生成注册码的方法,包括如下步骤:
接收机器码;
确定机器码中的每个字符所对应的字符组;
将机器码中的每个字符替换为对应的字符组所对应的字符,以得到第一字符串;
对第一字符串进行解密,以得到解密信息;
将所述解密信息中的每个字符进行加密,以产生第二字符串;
确定第二字符串中的每个字符所对应的字符组;
将第二字符串中的每个字符替换为对应的字符组中的任意一个字符,以形成注册码。
10.根据权利要求9所述的方法,其特征在于,对第一字符串进行解密,以得到解密信息的步骤包括:
将第一字符串划分为多个部分;
将第一字符串划分后的每个部分与第一预设值进行预定数学运算;
将预定数学运算得到的每个数值替换为对应的ASCII码字符,以得到解密信息。
11.根据权利要求10所述的方法,其特征在于,将第一字符串划分为多个部分的步骤包括:
以预定位数为单位将第一字符串中的字符划分为多个部分,其中,所述预定位数是ASCII码表中的所有ASCII码值分别与第一预设值进行不同组所对应的预定数学运算后得到的结果的位数中的最大位数;
将每个部分的从左起第一个不为零的字符的左侧的零值去除。
12.根据权利要求10所述的方法,其特征在于,将第一字符串划分后的每个部分与第一预设值进行预定数学运算的步骤包括:
按照预定规则将所述多个部分划分为N个组,其中,N为大于零的自然数,每个组对应于一种预定数学运算;
将每个部分与第一预设值进行每个部分所在组所对应的预定数学运算。
13.根据权利要求9所述的方法,其特征在于,将解密信息中的每个字符进行加密,以产生第二字符串的步骤包括:
将解密信息中的每个字符替换为对应的ASCII码值,以产生ASCII码值组;
将ASCII码值组中的每个ASCII码值与第二预设值进行预定数学运算;
将进行预定数学运算后得到的结果按照ASCII码值组中的对应的ASCII码值的顺序排列以产生第二字符串。
14.根据权利要求13所述的方法,其特征在于,将ASCII码值组中的每个ASCII码值与第二预设值进行预定数学运算的步骤包括:
按照预定规则将ASCII码值组中的ASCII码值划分为N个组,其中,N为大于零的自然数,每个组对应于一种预定数学运算;
将每个ASCII码值与第二预设值进行每个ASCII码值所在组所对应的预定数学运算。
15.根据权利要求14所述的方法,其特征在于,将ASCII码值组中的每个ASCII码值与第二预设值进行预定数学运算的步骤还包括:
确定每个ASCII码值与第二预设值进行预定数学运算后得到的结果的位数是否达到预定位数,其中,所述预定位数是ASCII码表中的所有ASCII码值分别与第二预设值进行不同组所对应的预定数学运算后得到的结果的位数中的最大位数;
在没有达到预定位数的结果之前补充零值,以使该结果达到预定位数。
16.根据权利要求15所述的方法,其特征在于,N为2,与第一组对应的预定数学运算为加法、减法和乘法中的一种数学运算,与第二组对应的预定数学运算为加法、减法和乘法中的另一种数学运算。
17.根据权利要求15所述的方法,其特征在于,N为3,与第一组对应的预定数学运算为乘法,与第二组对应的预定数学运算为加法,与第三组对应的预定数学运算为减法。
18.根据权利要求9所述的方法,其特征在于,每个字符组包括至少一个汉字,不同字符组之间不存在相同的汉字。
19.一种软件注册的方法,包括如下步骤:
获取注册码;
确定注册码中的每个字符所对应的字符组;
将注册码中的每个字符替换为对应的字符组所对应的字符,以得到第二字符串;
对第二字符串进行解密,以得到解密信息;
获取计算机的设备信息;
判断解密信息与获取的设备信息是否一致;
如果解密信息与获取的设备信息一致,则确定软件通过注册。
20.根据权利要求19所述的方法,其特征在于,还包括:在确定软件通过注册之后,在预置路径下创建注册文件,将注册码写入到注册文件中,并将注册文件的创建时间修改为过去时间,文件属性设置为隐藏。
21.根据权利要求19所述的方法,其特征在于,如果解密信息与获取的设备信息不一致,则提示注册码错误。
22.根据权利要求19所述的方法,其特征在于,对第二字符串进行解密,以得到解密信息的步骤包括:
将第二字符串划分为多个部分;
将第二字符串划分后的每个部分与第二预设值进行预定数学运算;
将预定数学运算得到的每个数值替换为对应的ASCII码字符,以得到解密信息。
23.根据权利要求22所述的方法,其特征在于,将第二字符串划分为多个部分的步骤包括:
以预定位数为单位将第二字符串中的字符划分为多个部分,其中,所述预定位数是ASCII码表中的所有ASCII码值分别与第二预设值进行不同组所对应的预定数学运算后得到的结果的位数中的最大位数;
将每个部分的从左起第一个不为零的字符的左侧的零值去除。
24.根据权利要求22所述的方法,其特征在于,将第二字符串划分后的每个部分与第二预设值进行预定数学运算的步骤包括:
按照预定规则将所述多个部分划分为N个组,其中,N为大于零的自然数,每个组对应于一种预定数学运算;
将每个部分与第二预设值进行每个部分所在组所对应的预定数学运算。
25.根据权利要求19所述的方法,其特征在于,每个字符组包括至少一个汉字,不同字符组之间不存在相同的汉字。
26.一种限制软件功能的方法,包括如下步骤:
启动软件时查找预置路径下的注册文件;
读取注册文件中的注册码;
确定注册码中的每个字符所对应的字符组;
将注册码中的每个字符替换为对应的字符组所对应的字符,以得到第二字符串;
对第二字符串进行解密,以得到解密信息;
获取计算机的设备信息;
判断解密信息与获取的设备信息是否一致;
如果解密信息与获取的设备信息一致,则开放软件全部功能。
27.根据权利要求26所述的方法,其特征在于,如果解密信息与获取的设备信息不一致,则开放软件部分功能。
28.根据权利要求26所述的方法,其特征在于,对第二字符串进行解密,以得到解密信息的步骤包括:
将第二字符串划分为多个部分;
将第二字符串划分后的每个部分与第二预设值进行预定数学运算;
将预定数学运算得到的每个数值替换为对应的ASCII码字符,以得到解密信息。
29.根据权利要求28所述的方法,其特征在于,将第二字符串划分为多个部分的步骤包括:
以预定位数为单位将第二字符串中的字符划分为多个部分,其中,所述预定位数是ASCII码表中的所有ASCII码值分别与第二预设值进行不同组所对应的预定数学运算后得到的结果的位数中的最大位数;
将每个部分的从左起第一个不为零的字符的左侧的零值去除。
30.根据权利要求28所述的方法,其特征在于,将第二字符串划分后的每个部分与第二预设值进行预定数学运算的步骤包括:
按照预定规则将所述多个部分划分为N个组,其中,N为大于零的自然数,每个组对应于一种预定数学运算;
将每个部分与第二预设值进行每个部分所在组所对应的预定数学运算。
31.根据权利要求26所述的方法,其特征在于,每个字符组包括至少一个汉字,不同字符组之间不存在相同的汉字。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410322559.6A CN104123482B (zh) | 2014-07-08 | 2014-07-08 | 生成机器码和注册码的方法及软件注册和功能限制的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410322559.6A CN104123482B (zh) | 2014-07-08 | 2014-07-08 | 生成机器码和注册码的方法及软件注册和功能限制的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104123482A true CN104123482A (zh) | 2014-10-29 |
CN104123482B CN104123482B (zh) | 2017-01-18 |
Family
ID=51768891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410322559.6A Expired - Fee Related CN104123482B (zh) | 2014-07-08 | 2014-07-08 | 生成机器码和注册码的方法及软件注册和功能限制的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104123482B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104410501A (zh) * | 2014-12-25 | 2015-03-11 | 广东威创视讯科技股份有限公司 | 一种加密方法和装置 |
CN106294064A (zh) * | 2016-07-28 | 2017-01-04 | 浪潮电子信息产业股份有限公司 | 一种设置基板管理控制器属性的装置及方法 |
CN106326761A (zh) * | 2016-09-05 | 2017-01-11 | 天脉聚源(北京)传媒科技有限公司 | 一种sn码的加密方法及装置 |
CN111164593A (zh) * | 2019-12-27 | 2020-05-15 | 威创集团股份有限公司 | 一种注册授权方法及系统 |
CN114912080A (zh) * | 2022-04-21 | 2022-08-16 | 健帆生物科技集团股份有限公司 | 注册码的生成方法、控制方法、终端设备及存储介质 |
CN116243939A (zh) * | 2023-05-11 | 2023-06-09 | 深圳市驰普科达科技有限公司 | 软件的安装方法、装置、电子设备及存储介质 |
CN117708864A (zh) * | 2024-02-06 | 2024-03-15 | 深圳和润达科技有限公司 | 应用于电芯化成分容设备的中位机智能管理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080244754A1 (en) * | 2007-04-02 | 2008-10-02 | Edward Curren | System and Method for Software License Management for Concurrent License Management and Issuance |
CN102314572A (zh) * | 2011-10-14 | 2012-01-11 | 迈普通信技术股份有限公司 | 应用软件的使用授权方法、注册信息文件生成方法及装置 |
CN103093129A (zh) * | 2013-01-09 | 2013-05-08 | 上海大唐移动通信设备有限公司 | 一种用于软件许可的注册码生成方法和装置 |
CN103914635A (zh) * | 2012-12-29 | 2014-07-09 | 中国航空工业集团公司第六三一研究所 | 一种Eclipse软件产品授权许可管理方法 |
-
2014
- 2014-07-08 CN CN201410322559.6A patent/CN104123482B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080244754A1 (en) * | 2007-04-02 | 2008-10-02 | Edward Curren | System and Method for Software License Management for Concurrent License Management and Issuance |
CN102314572A (zh) * | 2011-10-14 | 2012-01-11 | 迈普通信技术股份有限公司 | 应用软件的使用授权方法、注册信息文件生成方法及装置 |
CN103914635A (zh) * | 2012-12-29 | 2014-07-09 | 中国航空工业集团公司第六三一研究所 | 一种Eclipse软件产品授权许可管理方法 |
CN103093129A (zh) * | 2013-01-09 | 2013-05-08 | 上海大唐移动通信设备有限公司 | 一种用于软件许可的注册码生成方法和装置 |
Non-Patent Citations (3)
Title |
---|
戚利: ""利用算术公式的用户名与注册码的生成算法"", 《电脑编程技巧与维护》 * |
王春来: ""基于计算机硬件序列号进行软件加密的技术"", 《辽宁科技学院学报》 * |
韩锦生: ""会计信息化系统注册码设计创意"", 《电脑编程技巧与维护》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104410501A (zh) * | 2014-12-25 | 2015-03-11 | 广东威创视讯科技股份有限公司 | 一种加密方法和装置 |
CN104410501B (zh) * | 2014-12-25 | 2019-02-26 | 广东威创视讯科技股份有限公司 | 一种加密方法和装置 |
CN106294064A (zh) * | 2016-07-28 | 2017-01-04 | 浪潮电子信息产业股份有限公司 | 一种设置基板管理控制器属性的装置及方法 |
CN106326761A (zh) * | 2016-09-05 | 2017-01-11 | 天脉聚源(北京)传媒科技有限公司 | 一种sn码的加密方法及装置 |
CN106326761B (zh) * | 2016-09-05 | 2019-04-30 | 天脉聚源(北京)传媒科技有限公司 | 一种sn码的加密方法及装置 |
CN111164593B (zh) * | 2019-12-27 | 2022-06-21 | 威创集团股份有限公司 | 一种注册授权方法及系统 |
CN111164593A (zh) * | 2019-12-27 | 2020-05-15 | 威创集团股份有限公司 | 一种注册授权方法及系统 |
CN114912080A (zh) * | 2022-04-21 | 2022-08-16 | 健帆生物科技集团股份有限公司 | 注册码的生成方法、控制方法、终端设备及存储介质 |
CN114912080B (zh) * | 2022-04-21 | 2024-07-16 | 健帆生物科技集团股份有限公司 | 注册码的生成方法、控制方法、终端设备及存储介质 |
CN116243939A (zh) * | 2023-05-11 | 2023-06-09 | 深圳市驰普科达科技有限公司 | 软件的安装方法、装置、电子设备及存储介质 |
CN116243939B (zh) * | 2023-05-11 | 2023-07-21 | 深圳市驰普科达科技有限公司 | 软件的安装方法、装置、电子设备及存储介质 |
CN117708864A (zh) * | 2024-02-06 | 2024-03-15 | 深圳和润达科技有限公司 | 应用于电芯化成分容设备的中位机智能管理方法及装置 |
CN117708864B (zh) * | 2024-02-06 | 2024-05-28 | 深圳和润达科技有限公司 | 应用于电芯化成分容设备的中位机智能管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104123482B (zh) | 2017-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104123482A (zh) | 生成机器码和注册码的方法及软件注册和功能限制的方法 | |
Igic et al. | Evolutionary relationships among self-incompatibility RNases | |
CN113254549B (zh) | 人物关系挖掘模型的训练方法、人物关系挖掘方法及装置 | |
RU2018143382A (ru) | Функция выработки ключа на основе изображения | |
CN108563521B (zh) | 应用于游戏客户端的信息分享方法、装置、处理器及终端 | |
CN103473104B (zh) | 一种基于关键词上下文频率矩阵的应用重打包辨别方法 | |
CN112000991A (zh) | 多方数据联合处理方法、装置及系统 | |
CN105703901B (zh) | 加密数据输入方法及加密数据输入装置 | |
CN105391614B (zh) | 消息的处理方法和装置 | |
CN109934709A (zh) | 基于区块链的数据处理方法、装置和服务器 | |
CN113271486B (zh) | 交互视频处理方法、装置、计算机设备及存储介质 | |
CN107005399A (zh) | 用于执行混淆算术的电子计算设备 | |
Navarro et al. | Morphometric assessment of pterosaur jaw disparity | |
CN106030604A (zh) | 在加密算法中使用机密数据时保护机密数据的方法 | |
JP2014211607A (ja) | 情報処理装置およびその方法 | |
CN114357390A (zh) | 一种代码混淆方法、装置、电子设备及存储介质 | |
CN109847360B (zh) | 游戏道具的3d效果处理方法、装置、电子设备及介质 | |
Gauthier et al. | Museomics reveals evolutionary history of Oreina alpine leaf beetles (Coleoptera: Chrysomelidae) | |
Occil | Random Number Generator Recommendations for Applications | |
CN116416374A (zh) | 用于训练服饰生成模型的方法和用于生成服饰的方法 | |
Wright | Humility, integrity, and simplicity | |
CN110624245A (zh) | 游戏交易的处理方法、装置、存储介质及处理器 | |
Aziz et al. | Determination of the most significant fault parameters for Manila Trench earthquake tsunami | |
Gao et al. | DORY: Deliberative Prompt Recovery for LLM | |
Chou et al. | Human and Dog: Explore the Game Design of Unequal Communicative Patterns |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170118 Termination date: 20170708 |