软件升级验证的方法和装置的制造方法_2

文档序号:9888009阅读:来源:国知局
逐一判断第二字符组的前X个字符是否为标准字符组中的字符。
[0041 ] 该标准字符组可以由网络服务器任意定义。例如,该标准字符组中的字符包括:a?z、A?Z和O?9,也就是说,当字符为a?z、A?Z和O?9中的任一字符,该字符即为标准字符。例如,按照上述标准字符的定义,第二字符组l#32547698badcAeCBED中除了字符,其他全是标准字符。
[0042]其中,o〈x< m。例如,当X为8时,则只需判断第二字符组的前8个字符即可。
[0043](b)将第二字符组的前X个字符中不属于标准字符组中的字符用预设字符替换形成过滤后的部分字符。
[0044]预设字符没有限制,可以是大写字母、小写字母、数字、符号等等。例如,第二字符组l#32547698badcAeCBED,当预设字符为K,x为8时,则将第二个字符“#,,替换为K,过滤后的部分字符为1K325476。
[0045](4)将过滤后的部分字符作为硬件ID。
[0046]例如,该上述过滤后的部分字符1K325476作为硬件ID。
[0047]该硬件ID的生成过程,通过特定的方法过滤字符得到新的字符组作为硬件ID,可以提高后续升级验证过程的安全性,减少硬件ID被破解或者盗用的风险。
[0048]步骤S30:生成授权文件。
[0049]如图2所示,步骤S30具体包括如下的过程:
[0050]步骤S31:根据软件的序列号获取软件信息。
[0051]优选的,该软件信息包括:软件的序列号的类型、软件的序列号绑定的系统中心节点数、软件的序列号绑定的服务器节点数、软件的序列号绑定的客户端节点数、软件的升级有效期。
[0052]其中,该软件的序列号的类型包括:试用版序列号、普通企业版序列号和高级企业版序列号等等。
[0053]该软件信息可以是上述信息中的至少一种,也可以是上述信息中的多种的组合。
[0054]当该软件同时包括系统中心、服务器、客户端三个模块时,则该软件信息可以同时包括软件的序列号绑定的系统中心节点数、软件的序列号绑定的服务器节点数和软件的序列号绑定的客户端节点数。
[0055]—个绑定序列号的软件在售出时就已经绑定了序列号类型、系统中心节点数、月艮务器节点数、客户端节点数、升级有效期等信息,要获取这些信息只需要查询数据库即可。
[0056]步骤S32:将软件信息、软件的序列号和软件的版本信息生成第一字符串。
[0057]上述的版本信息包括软件发布的日期。该软件发布的日期可以采用年月日的表述形式,记为XXXXXXXX,其中,前4位为年,紧接着两位为月,最后两位为日。例如软件的发布日期为2007年2月27日,则该版本信息记为20070227。
[0058]该步骤可以通过将软件信息、软件的序列号和软件的版本信息按照一定的顺序写入输出缓冲区中得到。该生成过程是本领域的现有技术。输出缓冲区是指计算机的一小块用来存储数据的内存。当然,也可以将这些字符串信息不写入输出缓冲区,而是用任意一块内存区来储存,也是可以做后续的运算的。当将上述字符串信息写入输出缓冲区,可为后面的文件输出做准备。
[0059]第一字符串的字符为数字、小写字母a?z和大写字母A?Z。例如第一字符串为1234567。
[0060]步骤S33:从第一字符串的第一个字符开始截取部分第一字符串。
[0061]截取的部分第一字符串的长度不限,但该长度应小于第一字符串的总长度,并大于O。例如截取的部分第一字符串为1234。
[0062]步骤S34:用第二字符串替换截取的部分第一字符串得到第三字符串。
[0063]该第二字符串的长度为N字节。该第二字符串的长度和截取的部分第一字符串的长度相等。该第二字符串为自定义的字符串。第二字符串的字符为数字、小写字母a?z和大写字母A?Z。例如,将第二字符串自定义为4321,则第二字符串的长度N为4字节,替换后的第三字符串为4321567。
[0064]步骤S35:将第三字符串中的第N+1位字符A到最后一个字符中的第三字符串的字符依次替换为新的字符,得到第四字符串。
[0065]其中,步骤S35又具体包括如下的过程:
[0066](I)将第三字符串中的第N+1位字符A的下标取模第二字符串的长度N,得到第一数值η ο
[0067]本发明中的下标的含义为:当字符A是第N+1位字符时,字符A的下标为N。
[0068]其中,取模的结果为字符A的下标除以N得到的余数。
[0069]例如,上述的第二字符串的长度N为4,则第三字符串中的第5位字符A为5,第5位字符A的下标为4,第一数值η为O。
[0070](2)获得第二字符串的第n+1位字符B。
[0071]例如,当第一数值η为O,则第二字符串4321中的第I位字符B为4。
[0072](3)将字符B转换为二进制数b。
[0073]例如,当字符B为4时,其二进制数b为100。
[0074](4)将字符A转换为二进制数a。
[0075]例如,当字符A为5时,其二进制数a为101。
[0076](5)将二进制数b和二进制数a进行按位异或操作,得到数值c。
[0077]例如,上述当二进制数b为100,二进制数a为101,按位异或操作后得到的数值c为101。
[0078](6)将数值c替换第三字符串的第N+1位字符A。
[0079]例如,第三字符串中的第5位字符A,即数字5,被替换为101。
[0080](7)循环上述过程直到第三字符串中的最后一个字符被替换。
[0081 ]例如,对于上述的第三字符串为4321567,循环上述的过程,则将采用步骤(I)?
(6)依次替换第三字符串中的字符6和7,则具体替换结果如下:
[0082]第6位字符6的下标为5,5被4取模得到第一数值η为I,其二进制数a为I,第二字符串中的第2位字符B为3,其二进制数b为11,则按位异或得到的数值c为10,最终6被替换为10。
[0083]第7位字符7的下标为6,被4取模为2,其二进制数a为10,第二字符串中的第3位字符B为2,其二进制数b为10,则按位异或得到的数值c为10,最终7被替换为10。
[0084]经过上述的替换过程,最终第三字符串4321567被替换为第四字符串43211011010。
[0085]步骤S36:将第四字符串保存为授权文件。
[0086]例如,将该第四字符串43211011010保存为授权文件,可以通过将该第四字符串输出到一个空白文件并保存来实现。
[0087]当软件安装到一台新的硬件上时,则硬件ID会发生变化。需要保存安装该新的硬件ID,并重新绑定软件的序列号、授权密码以及新的硬件ID,然后按照上述过程重新生成一份新的授权文件,以便后续使用户导入该新的授权文件后才可进行升级。
[0088]上述的生成授权文件的过程,将由软件的相关信息等生成的第一字符串替换为新的第四字符串,由第四字符串生成授权文件,提高了授权文件的安全性。
[0089]步骤S40:获得并保存授权文件的MD5值。
[0090]该授权文件的MD5值为第四字符串的MD5值。MD5S卩Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致,是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法)ο该MD5值通过现有的主流编程语言即可实现。
[0091]步骤S50:将该授权文件发送到安装该软件的硬件上使该硬件上加载该授权文件。
[0092]经过上述的过程,升级软件的准备工作完成。升级软件的准备工作完成后,该软件升级验证的过程具体还包括如下的步骤:
[0093]步骤S60:检测软件的序列号是否正确。
[0094]用户可可通过在网页上输入的方式将软件的序列号发送给网络服务器。当然,也可以通过其他现有技术使网络服务器获取该软件的序列号。例如,该网络服务器中存储有软件的序列号#1234 5 6 789abCdeABCDE,则如果用户输入的软件的序列号也为#123456789abcdeABCDE,则判定软件的序列号正确,进行步骤S70 ;否则,进行步骤SI30,网络服务器拒绝用户的软件升级请求。
[0095]步骤S70:如果软件的序列号正确,则检测安装软件的硬件的硬件ID是否正确。
[0096]网络服务器可自动检测出该硬件的硬件ID。当然,也可以通过其他现有技术使网络服务器获取该硬件ID。例如,该网络服务器中存储有该与上述的软件的序列号绑定的硬件ID为1K325476,则如果检测到的硬件ID也为1K325476,则判定硬件ID正确,进行步骤S80 ;否则,进行步骤S130,网络服务器拒绝用户的软件升级请求。
[0097]步骤S80:如果该硬件ID正确,则检测授权文件的MD5值是否正确。
[0098]网络服务器可自动检测出该授权文件
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1