一种SN码的加密方法及装置与流程

文档序号:12600639阅读:722来源:国知局
一种SN码的加密方法及装置与流程

本发明涉及互联网应用技术领域,特别涉及一种SN码的加密方法及装置。



背景技术:

SN码是Serial Number的缩写,有时也叫SerialNo,也就是产品序列号,产品序列是为了验证“产品的合法身份”而引入的一个概念,它是用来保障用户的正版权益,享受合法服务的,一套正版的产品只对应一组产品序列号。SN码又称:机器码、认证码、注册申请码等。为了提高安全性,需要对SN码进行加密,亟待解决这一技术问题。



技术实现要素:

本发明提供一种SN码的加密方法及装置,用以对SN码进行加密,实现安全性的目的。

本发明提供一种SN码的加密方法,包括:

获取待加密SN码,确定所述待加密SN码的长度,其中,所述待加密SN码的各个位对应编号;

针对所述待加密SN码的任意当前位,确定所述当前位对应的预设位;

将所述待加密SN码的长度减去所述当前位的编号,得到的计算值作为所述预设位的值;

将所述计算值作为序号,从预设的字符串中获取所述计算值对应的位的字符,并将该字符作为所述当前位的值。

在本发明一实施例中,所述待加密SN码为12位,且所述待加密SN码的各个位的编号为十进制。

在本发明一实施例中,针对所述待加密SN码的任意当前位,确定所述当前位对应的预设位,包括:

当所述当前位为第k位,则所述当前位对应的预设位为13-k位。

在本发明一实施例中,将所述计算值作为序号,从预设的字符串中获取所述计算值对应的位的字符,包括:

对所述预设的字符串的字符的前后位置进行变换,得到变换后的字符串;

将所述计算值作为序号,从所述变换后的字符串中获取所述计算值对应的位的字符。

在本发明一实施例中,对所述预设的字符串的字符的前后位置进行变换,包括:

基于所述当前位的编号,确定变换位数;

根据所述变换位数,对所述预设的字符串的字符的前后位置进行变换。

在本发明一实施例中,基于所述当前位的编号,确定变换位数,包括:

将所述当前位的编号的平方,加上2倍的所述当前位的编号,再加上数值5,得到的值确定为所述变换位数。

在本发明一实施例中,根据所述变换位数,对所述预设的字符串的字符的前后位置进行变换,包括:

从所述预设的字符串的开始位置确定所述变换位数的子字符串;

将确定的所述子字符串调整到所述预设的字符串的末尾位置处。

在本发明一实施例中,所述预设的字符串是16位三十六进制的一组字符串。

本发明还提供一种SN码的加密装置,包括:

长度确定模块,用于获取待加密SN码,确定所述待加密SN码的长度,其中,所述待加密SN码的各个位对应编号;

预设位确定模块,用于针对所述待加密SN码的任意当前位,确定所述当前位对应的预设位;

第一加密模块,用于将所述待加密SN码的长度减去所述当前位的编号,得到的计算值作为所述预设位的值;

第二加密模块,用于将所述计算值作为序号,从预设的字符串中获取所述计算值对应的位的字符,并将该字符作为所述当前位的值。

在本发明一实施例中,所述待加密SN码为12位,且所述待加密SN码的各个位的编号为十进制。

在本发明一实施例中,所述预设位确定模块还用于:

当所述当前位为第k位,则所述当前位对应的预设位为13-k位。

在本发明一实施例中,所述第二加密模块还用于:

对所述预设的字符串的字符的前后位置进行变换,得到变换后的字符串;

将所述计算值作为序号,从所述变换后的字符串中获取所述计算值对应的位的字符。

在本发明一实施例中,所述第二加密模块还用于:

基于所述当前位的编号,确定变换位数;

根据所述变换位数,对所述预设的字符串的字符的前后位置进行变换。

在本发明一实施例中,所述第二加密模块还用于:

将所述当前位的编号的平方,加上2倍的所述当前位的编号,再加上数值5,得到的值确定为所述变换位数。

在本发明一实施例中,所述第二加密模块还用于:

从所述预设的字符串的开始位置确定所述变换位数的子字符串;

将确定的所述子字符串调整到所述预设的字符串的末尾位置处。

在本发明一实施例中,所述预设的字符串是16位三十六进制的一组字符串。

在本发明实施例中,获取待加密SN码,确定待加密SN码的长度,其中,待加密SN码的各个位对应编号;针对待加密SN码的任意当前位,确定当前位对应的预设位;随后,将待加密SN码的长度减去当前位的编号,得到的计算值作为预设位的值;之后,将计算值作为序号,从预设的字符串中获取计算值对应的位的字符,并将该字符作为当前位的值。由此可见,本发明实施例能够对SN码进行加密,实现安全性的目的。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1所示为本发明一实施例中SN码的加密方法的流程图;

图2所示为本发明一实施例中SN码的解密方法的流程图;以及

图3所示为本发明一实施例中SN码的加密装置的结构示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

如图1所示为本发明一实施例中SN码的加密方法的流程图,该方法可以包括以下步骤S11-S14。

步骤S11,获取待加密SN码,确定待加密SN码的长度,其中,待加密SN码的各个位对应编号。

在该步骤中,待加密SN码可以为12位,且待加密SN码的各个位的编号为十进制。

步骤S12,针对待加密SN码的任意当前位,确定当前位对应的预设位。

步骤S13,将待加密SN码的长度减去当前位的编号,得到的计算值作为预设位的值。

步骤S14,将计算值作为序号,从预设的字符串中获取计算值对应的位的字符,并将该字符作为当前位的值。

在该步骤中,预设的字符串可以是16位三十六进制的一组字符串。三十六进制,是数据的一种表示方法,它由0-9,A-Z组成,字母不区分大小写。

在本发明实施例中,获取待加密SN码,确定待加密SN码的长度,其中,待加密SN码的各个位对应编号;针对待加密SN码的任意当前位,确定当前位对应的预设位;随后,将待加密SN码的长度减去当前位的编号,得到的计算值作为预设位的值;之后,将计算值作为序号,从预设的字符串中获取计算值对应的位的字符,并将该字符作为当前位的值。由此可见,本发明实施例能够对SN码进行加密,实现安全性的目的。

在本发明的可选实施例中,上文步骤S12中如果当前位为第k位,则当前位对应的预设位为13-k位。例如,待加密SN码为12位,如果当前位为第1位,则当前位对应的预设位为第12位,即待加密SN码的最后一位;如果当前位为第2位,则当前位对应的预设位为第11位,即待加密SN码的倒数第二位,等等。

在上文步骤S13和步骤S14中,针对当前位是第一位,假设第一位的编号为0,用长度减当前位的编号,即,12-0=12,得到最后一位的值,x=最后一位的值。随后,将x的值作为序号,从预设的字符串(即,Key)中获得第x位的字符,将该字符作为第一位的值。

同样地,针对当前位是第二位,假设第二位的编号为1,用长度减当前位的编号,即,12-1=11,得到倒数第二位的值,x=倒数第二位的值。随后,将x的值作为序号,从Key中获得第x位的字符,将该字符作为第二位的值。

针对当前位是第三位,重复上述过程,直至最后一位。

上文步骤S14中,将计算值作为序号,从预设的字符串中获取计算值对应的位的字符,本发明实施例提供了一种可选的方案,该方案包括以下步骤A1-A2。

步骤A1,对预设的字符串的字符的前后位置进行变换,得到变换后的字符串。

在该步骤中,在从Key中获取第x位的字符之前先要对Key做一次变换处理,可以基于当前位的编号,确定变换位数;进而,根据变换位数,对预设的字符串的字符的前后位置进行变换。

具体地,将当前位的编号的平方,加上2倍的当前位的编号,再加上数值5,得到的值确定为变换位数,即,变换方程是i的平方+2乘以i+5,其中,i为当前位的编号。进而,从预设的字符串的开始位置确定变换位数的子字符串;将确定的子字符串调整到预设的字符串的末尾位置处。在本发明的可选实施例中,i也可以为步骤S13中计算得到的计算值。

例如,Key为abcdefg012345678,获取第2位字符过程如下:首先1*1+2*1+5=8,那么Key经过变换成为12345678abcdefg0(把前面8位旋转到后面),那么第2位就是2。

步骤A2,将计算值作为序号,从变换后的字符串中获取计算值对应的位的字符。

相应地,SN码的解密方法是上述的逆过程。如图2所示为本发明一实施例中SN码的解密方法的流程图,该方法可以包括以下步骤S21-S23。

步骤S21,获取待解密SN码,确定待解密SN码的长度,其中,待解密SN码的各个位对应值。

步骤S22,针对待解密SN码的任意当前位,根据当前位的值,确定在预设的字符串中对应字符的序号或位。

步骤S23,将待解密SN码的长度减去确定的序号或位,作为当前位的编号。

需要说明的是,在实际应用中,上述所有可选实施方式可以采用结合的方式任意组合,形成本发明的可选实施例,在此不再一一赘述。

对应于上述实施例中的SN码的加密方法,本发明还提供一种SN码的加密装置。如图3所示为本发明一实施例中SN码的加密装置的结构示意图,包括:

长度确定模块31,用于获取待加密SN码,确定所述待加密SN码的长度,其中,所述待加密SN码的各个位对应编号;

预设位确定模块32,用于针对所述待加密SN码的任意当前位,确定所述当前位对应的预设位;

第一加密模块33,用于将所述待加密SN码的长度减去所述当前位的编号,得到的计算值作为所述预设位的值;

第二加密模块34,用于将所述计算值作为序号,从预设的字符串中获取所述计算值对应的位的字符,并将该字符作为所述当前位的值。

在本发明一实施例中,所述待加密SN码为12位,且所述待加密SN码的各个位的编号为十进制。

在本发明一实施例中,所述预设位确定模块32还用于:

当所述当前位为第k位,则所述当前位对应的预设位为13-k位。

在本发明一实施例中,所述第二加密模块34还用于:

对所述预设的字符串的字符的前后位置进行变换,得到变换后的字符串;

将所述计算值作为序号,从所述变换后的字符串中获取所述计算值对应的位的字符。

在本发明一实施例中,所述第二加密模块34还用于:

基于所述当前位的编号,确定变换位数;

根据所述变换位数,对所述预设的字符串的字符的前后位置进行变换。

在本发明一实施例中,所述第二加密模块34还用于:

将所述当前位的编号的平方,加上2倍的所述当前位的编号,再加上数值5,得到的值确定为所述变换位数。

在本发明一实施例中,所述第二加密模块34还用于:

从所述预设的字符串的开始位置确定所述变换位数的子字符串;

将确定的所述子字符串调整到所述预设的字符串的末尾位置处。

在本发明一实施例中,所述预设的字符串是16位三十六进制的一组字符串。

本发明实施例的上述装置:获取待加密SN码,确定待加密SN码的长度,其中,待加密SN码的各个位对应编号;针对待加密SN码的任意当前位,确定当前位对应的预设位;随后,将待加密SN码的长度减去当前位的编号,得到的计算值作为预设位的值;之后,将计算值作为序号,从预设的字符串中获取计算值对应的位的字符,并将该字符作为当前位的值。由此可见,本发明实施例能够对SN码进行加密,实现安全性的目的。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1