一种数据校验值生成方法及系统.pdf

上传人:大师****2 文档编号:1750506 上传时间:2018-07-09 格式:PDF 页数:9 大小:500.16KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510254788.3

申请日:

2015.05.19

公开号:

CN104820710A

公开日:

2015.08.05

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20150519|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

福建新大陆电脑股份有限公司

发明人:

林勇; 林锋仰

地址:

350000福建省福州市马尾区儒江西路1号

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明涉及数据校验值生成方法一种数据校验值生成方法,包括以下步骤:S100:获取N个数据表内的数据;S200:获取数据表内数据的数值;S300:计算所述数值的每一数值Axy(x=1,2,3,4……,y=1,2,3,4……)的绝对值,若Axy≠0,则取Axy的J次方后的正值并累加,获取校验值N2;计算所述数值的每一行数值之和Px(x=1,2,3,4……),若Px≠0,则取px的K次方后累加各值,获取校验值N3;计算所述数值的每一列数值之和Qy(y=1,2,3,4……),若Qy≠0,则取Qy的L次方后累加各值,获取校验值N4。该算法对数据行、列的校验值计算不必严格依据行、列的先后顺序,缩短数据校验值生成时间。该方法能够一次性生成N个数据表的校验值,并采集了数据表的所有数值、各行数据、各列数据,应用校验值即可确认数据表在传输、备份的过程中数据是否被篡改、丢失等。

权利要求书

权利要求书
1.  数据校验值生成方法一种数据校验值生成方法,其特征在于,包括以下步骤:
S100:获取N个数据表内的数据;
S200:获取数据表内数据的数值Axy;
S300:累加所述数值,获取校验值N1;
计算所述数值的每一数值Axy(x=1,2,3,4……,y=1,2,3,4……)的绝对值,若Axy≠0,则取Axy的J次方后的正值并累加,获取校验值N2;
计算所述数值的每一行数值之和Px(x=1,2,3,4……),若Px≠0,则取px的K次方后累加各值,获取校验值N3;
计算所述数值的每一列数值之和Qy(y=1,2,3,4……),若Qy≠0,则取Qy的L次方后累加各值,获取校验值N4。

2.  根据权利要求1所述的数据校验值生成方法,其特征在于:
J=2j或1/2j,j≠0;
K=2k+1或1/(2k+1),k≠0;
L=2l+1或1/(2l+1),l≠0;
j、k、l为整数。

3.  根据权利要求2所述的数据校验值生成方法,其特征在于:所述N值大于0。

4.  根据权利要求3所述的数据校验值生成方法,其特征在于:
所述校验值N1的有效位数为小数点后M1位;
所述校验值N2的有效位数为小数点后M2位;
所述校验值N3的有效位数为小数点后M3位;
所述校验值N4的有效位数为小数点后M4位。

5.  一种数据校验值生成系统,其特征在于:包括数据获取模块、数值获取模块及校验值获取模块;
所述数据获取模块获取N个数据表内的数据;
所述数值获取模块获取数据表内数据的数值;
所述校验值获取模块,累加所述数值,获取校验值N1;计算所述数值的每一数值Axy(x=1,2,3,4……,y=1,2,3,4……)的绝对值,若Axy≠0,则取Axy的J次方后的正值并累加,获取校验值N2;计算所述数值的每一行数值之和Px(x=1,2,3,4……),若Px≠0,则取Px的K次方后累加各值,获取校验值N3;计算所述数值的每一列数值之和Qy(y=1,2,3,4……),若Qy≠0,则取Qy的L次方后累加各值,获取校验值N4。

6.  根据权利要求5所述的数据校验值生成系统,其特征在于:
J=2j或1/2j,j≠0;
K=2k+1或1/(2k+1),k≠0;
L=2l+1或1/(2l+1),l≠0;
j、k、l为整数。

7.  根据权利要求6所述的数据校验值生成系统,其特征在于,所述N值大于0。

8.  根据权利要求7所述的数据校验值生成系统,其特征在于,
所述校验值N1的有效位数为小数点后M1位;
所述校验值N2的有效位数为小数点后M2位;
所述校验值N3的有效位数为小数点后M3位;
所述校验值N4的有效位数为小数点后M4位。

说明书

说明书一种数据校验值生成方法及系统
技术领域
本发明涉及数据库维护技术,尤其涉及一种数据校验值生成方法及系统。
背景技术
在数据库技术的应用领域,在多个存储设备、终端间进行数据复制时,通常是直接从源存储设备中读取数据后通过中间存储媒介或网络存储至目的存储设备上。数据在实际传输过程中可能会存在数据被篡改或者丢失等情况。因此,在对数据库中的数据进行备份的时候,需要对数据的完整性进行验证,以确保数据的安全性。
为了对数据的完整性进行验证,目前采用的方法主要有:
1、比较数据库大小:对数据库记录的数据数量进行比较,或者对数据文件的大小进行比较。
2、对每条数据库记录计算校验码,并比较校验码是否一致。
现有技术中,校验码的计算可以很好的检查主、备数据库的记录是否一致,但目前市面上有很多数据校验算法对于数据表的先后,行列之间的顺序位置要求严格,即主、备数据行或者列在计算的时候位置不一致,就会出现校验值不一致的情况。因此,需要有一种更加简易的校验值生成算法,能够忽略数据表的先后顺序,数据行或者列的先后顺序,使校验值生成方式更加灵活,并使数据校验相较之更加便利。
发明内容
本发明的目的在于提供一种能够应用于各种行业,各种情况下的数据表的校验值生成,其能够提高数据表的校验准确性。
为了解决上述技术问题本发明采用了如下技术方案,提供一种数据校验值生成方法,包括以下步骤:
S100:获取N个数据表内的数据;
S200:获取数据表内数据的数值Axy;
S300:累加所述数值,获取校验值N1;计算所述数值的每一数值Axy(x=1,2,3,4……,y=1,2,3,4……)的绝对值,若Axy≠0,则取Axy的J次方后的正值并累加,获取校验值N2;计算所述数值的每一行数值之和Px(x=1,2,3,4……),若Px≠0,则取px的K次方后累加各值,获取校验值N3;计算所述数值的每一列数值之和Qy(y=1,2,3,4……),若Qy≠0,则取Qy的L次方后累加各值,获取校验值N4。
其中,J=2j或1/2j,j≠0;K=2k+1或1/(2k+1),k≠0;L=2l+1或1/(2l+1),l≠0;j、k、l为整数。
其中,所述N值大于0。
其中,所述校验值N1的有效位数为小数点后M1位;所述校验值N2的有效位数为小数点后M2位;所述校验值N3的有效位数为小数点后M3位;所述校验值N4的有效位数为小数点后M4位。
本发明还提供一种数据校验值生成系统,包括数据获取模块、数值获取模块及校验值获取模块;所述数据获取模块获取N个数据表内的数据;所述校验值获取模块,累加所述数值,获取校验值N1;计算所述数值的每一数值 Axy(x=1,2,3,4……,y=1,2,3,4……)的绝对值,若Axy≠0,则取Axy的J次方后的正值并累加,获取校验值N2;计算所述数值的每一行数值之和Px(x=1,2,3,4……),若Px≠0,则取px的K次方后累加各值,获取校验值N3;计算所述数值的每一列数值之和Qy(y=1,2,3,4……),若Qy≠0,则取Qy的L次方后累加各值,获取校验值N4。
其中,J=2j或1/2j,j≠0;K=2k+1或1/(2k+1),k≠0;L=2l+1或1/(2l+1),l≠0;j、k、l为整数。。
其中,所述N值大于0。
其中,所述校验值N1的有效位数为小数点后M1位;所述校验值N2的有效位数为小数点后M2位;所述校验值N3的有效位数为小数点后M3位;所述校验值N4的有效位数为小数点后M4位。
本发明的有益效果是:采用所述的数据校验值生成方法,在计算数据表的校验值的过程中,对数据表的数据行的校验值计算不必严格依据数据行的先后顺序,对于数据表内数据列的校验值计算同样也不必严格依据数据列的先后顺序,通过上述技术方案,缩短数据校验值生成时间,大大提高了工作效率。此外,所述数据校验值生成方法能够一次性生成N个数据表的校验值,操作简单,易于控制。更有,所述校验值在生成的过程中采集了数据表的所有数值、各行数值、各列数值,通过应用校验值即可确认数据表在传输、备份的过程中数据是否被篡改、丢失等。
附图说明
图1所示为本发明一具体实施方式的数据表A示意图;
图2所示为本发明一具体实施方式的数据表B示意图;
图3所示为本发明的数据校验值生成方法的流程图。
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
参阅图3,本发明公开了数据校验值生成方法一种数据校验值生成方法,包
括以下步骤:
S100:获取N个数据表内的数据;
S200:获取数据表内数据的数值Axy;所述数据表内的数据可为数值型、字符型、字母型等,计算机系统都是采用二进制编码存放数据,如果校验的数据是字符型、字母符号等,则先获取二进制编码,再转换为10进制的数值,进而获取数据表内数据的数值;若所述数据表内的数据为数值型,则可直接获取数据表内数据的数值。
S300:累加所述数值,获取校验值N1;
计算所述数值的每一数值Axy(x=1,2,3,4……,y=1,2,3,4……)的绝对值,若Axy≠0,则取Axy的J次方后的正值并累加,获取校验值N2;计算所述数值的每一行数值之和Px(x=1,2,3,4……),若Px≠0,则取Px的K次方后累加各值,获取校验值N3;计算所述数值的每一列数值之和Qy(y=1,2,3,4……),若Qy≠0,则取Qy的L次方后累加各值,获取校验值N4。
参见附图1、2,图1中数据表的数值为A11,A12,A13,A21,A22,A23,若A11=0,A12,A13,A21,A22,A23≠0,则取剩余的每一数值A12,A13,A21,A22,A23的J次方后 的正值并将上述结果累加,获取校验值N2,以此类推不再赘述。
计算所述数值的每一行数值之和Px(x=1,2,3,4……),若Px≠0,则取Px的K次方后累加各值,获取校验值N3;如图1中的数据表,其每一行数值之和P1=A11+A12+A13,P2=A21+A22+A23,P3=A31+A32+A33若P1、P2、P3≠0,则分别取P1、P2、P3的K次方后累加各值,若P1=0,P2、P3≠0,则分别取P2、P3的K次方后累加各值,获取校验值N3。若P1、P2、P3=0,则取行校验值N3=0。
计算所述数值的每一列数值之和Qy(y=1,2,3,4……),若Qy≠0,则取Qy的L次方后累加各值,获取校验值N4。如图1中的数据表,其每一列数值之和Q1=A11+A21+A31,Q2=A21+A22+A32,Q3=A13+A23+A33+,若Q1、Q2、Q3≠0,则分别取Q1、Q2、Q3的L次方后累加各值,若Q1=0,Q2、Q3≠0,则分别取Q2、Q3的L次方后累加各值,获取校验值N3。若Q1、Q2、Q3=0,则取校验值N4=0。
在一优选的实施方式中,J=2j或1/2j,j≠0;K=2k+1或1/(2k+1),k≠0;L=2l+1或1/(2l+1),l≠0;j、k、l为整数。在具体实施方式中,数据表校验值的获取可采用如下的方式:
方式一、N1通过累加数据表的所有数值;计算所述数值的每一数值的绝对值的2j次方,并累加取2j次方后的数值,获取校验值N2;计算所述数值的各行数值之和的(2k+1)次方,并累加取(2k+1)次方后的各值获取校验值N3;计算所述数值的各列数值之和的(2l+1)次方,并累加取(2l+1)次方后的各值获取校验值N4。
方式二、N1为累加数据表的所有数值;
计算所述数值的每一数值Axy的绝对值,当Axy≠0时,取Axy的1/2j次方后取正值(即开2j次方后的正数根),累加开次方后的各值,获取校验值N2;参见 图1,若A11=0,其余数值为非0的数值,则不对A11取1/2j次方的计算,并将数据表内其余的数值进行相应的开根、取正数根计算,经过上述计算后的各值累加即为校验值N2。
计算所述数值的每一行数值之和Px(x=1,2,3,4……),若Px≠0,则取Px=1/(2k+1),(k≠0)次方后累加各值,获取校验值N3。在该过程中取Px=1/(2k+1)即代表将Px开(2k+1)次方,若Px=0,则不对其进行开方运算。Px开方后的各值累加后即得N3。
计算所述数值的每一列数值之和Qy(y=1,2,3,4……),若Qy≠0,则取Qy=1/(2l+1),(1≠0)次方后累加各值,获取校验值N4。在该过程中取Qy=1/(2l+1)即代表将Qy开方,若Qy=0,则不对其进行开方运算。Qy开方后的各值累加后即得N4。
方式三:N1通过累加数据表的所有数值;
计算所述数值的每一数值Axy的绝对值,当Axy≠0时,取Axy的1/2j次方后累加各值,获取校验值N2;参见图1,若A11=0,其余数值为非0的数值,则不对A11取1/2j次方的计算,并将数据表内其余的数值取1/2j次方后累加各值,各个值的累加值即为校验值N2。
计算所述数值的各行数值之和的(2k+1)次方,并累加取(2k+1)次方后的各值获取校验值N3;
计算所述数值的每一列数值之和Qy(y=1,2,3,4……),若Qy≠0,则取Qy=1/(2l+1),(1≠0)次方后累加各值,获取校验值N4。在该过程中取Qy=1/(2l+1)即代表将Qy开方,若Qy=0,则不对其进行开方运算。Qy开方后的各值累加后即得N4。
方式一、二、三仅为举例说明本发明中N1、N2、N3、N4的取值方式,所述N1、N2、N3、N4取值方式可依实际情况进行排列组合。
在具体实施方式中,所述数据表的张数依实际情况的需要,可随意选择,所述N值大于0。如可选择半张数据表,一张数据表或者任意多张数据表。
以下针对两张数据表生成数据校验值的实施方式给予说明:
参见图1,图中所示表A为3行,3列;参见图2,图中所示表B为2行,2列;获取图1、2所示两个数据表内的数据,假设这两张数据表内的数据均为数值类型的,则直接获取数据表内的数值,并进行获取校验值的相关过程。在实际情况中,所述数据表内的数据可为数值型、字符型、字母型等,计算机系统都是采用二进制编码存放数据,如果校验的数据是字符型、字母符号等,则先获取二进制编码,再转换为10进制的数值,获取数据表内数据的数值;若所述数据表内的数据为数值型,则可直接获取数据表内数据的数值。为了计算这2张数据表的校验值,本实施方式中,可取J=1/2,K=1/3,L=1/3。J、K、L取其他数值同样不影响本发明的实现。
为了获取校验值N1,累加两张数据表内的数值,即:
N1=A11+A12+A13+A21+A22+A23+A31+A32+A33+B11+B12+B21+B22;
为了获取校验值N2,计算所述数值的每一数值的绝对值的开2次方取正数根(即取1/2次方),并累加开次方后的数值,即:
N2=POWER(ABS(A11),1/2)+POWER(ABS(A12),1/2)+POWER(ABS(A13),1/2)+POWER(ABS(A21),1/2)+POWER(ABS(A22),1/2)+POWER(ABS(A23),/2)+POWER(ABS(A31),1/2)+POWER(ABS(A32),1/2)+POWER(ABS(A33),1/2)+POWER(ABS(B11),1/2)+POWER(ABS(B12),1/2)+POWER(ABS(B22),1/2)+POWER(ABS(B23),1/2); 为了获取校验值N3,计算所述数值的各行数值之和的开3次方,并累加,即:
N3=POWER(A11+A12+A13,1/3)+POWER(A21+A22+A23,1/3)+POWER(A31+A32+A33,1/3)+POWER(B11+B12,1/3)+POWER(B21+B22,1/3);
为了获取校验值N4,计算所述数值的各列数值之和的开3次方,并累加取1/3次方后的数值,即:
N4=POWER(A11+A21+A31,1/3)+POWER(A12+A22+A32,1/3)+POWER(A13+A23+A33,1/3)+POWER(B11+B21,1/3)+POWER(B12+B22,1/3);
为了从所述校验值中准确判断出所备份、传输的数据是否存在被篡改或信息丢失的情况,将所述校验值的有效位数保留多位,倘若数据表内的数据存在微小的变化,即可通过校验值判别出,在某些实施方式中,所述校验值N1的有效位数为小数点后M1位;所述校验值N2的有效位数为小数点后M2位;所述校验值N3的有效位数为小数点后M3位;所述校验值N4的有效位数为小数点后M4位。其中,有效位数M1、M2、M3、M4的值可相同或者不同,具体的依据实际应用的需要选取M1、M2、M3、M4值的大小。针对上述实施方式中两个数据表的情况,取M1、M2、M3、M4为9。
本发明还公开了一种数据校验值生成系统,包括数据获取模块、数值获取模块及校验值获取模块;
所述数据获取模块获取N个数据表内的数据;
所述数值获取模块获取数据表内数据的数值;
所述校验值获取模块,累加所述数值,获取校验值N1;计算所述数值的每一数值Axy(x=1,2,3,4……,y=1,2,3,4……)的绝对值,若Axy≠0,则取Axy的J次方后累加各值,获取校验值N2;计算所述数值的每一行数值之和Px(x=1,2,3,4……), 若Px≠0,则取Px的K次方后累加各值,获取校验值N3;计算所述数值的每一列数值之和Qy(y=1,2,3,4……),若Qy≠0,则取Qy的L次方后累加各值,获取校验值N4。
在一优选的实施方式中,J=2j或1/2j,j≠0;K=2k+1或1/(2k+1),k≠0;L=2l+1或1/(2l+1),l≠0;j、k、l为整数。在该实施方式中,若Axy,Px或Qy为0,则不对其进行运算,
例如:POWER(P1,-3)如果P1=0,则POWER(P1,-3)设为0;
例如:POWER(A13+A23+A33,-3),如果A13+A23+A33=0,则POWER(A13+A23+A33,-3)设为0。
在一优选的实施方式中,所述N值大于0。
在一优选的实施方式中,所述校验值N1的有效位数为小数点后M1位;所述校验值N2的有效位数为小数点后M2位;所述校验值N3的有效位数为小数点后M3位;所述校验值N4的有效位数为小数点后M4位。
上所述仅为本发明数据校验值生成方法的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

一种数据校验值生成方法及系统.pdf_第1页
第1页 / 共9页
一种数据校验值生成方法及系统.pdf_第2页
第2页 / 共9页
一种数据校验值生成方法及系统.pdf_第3页
第3页 / 共9页
点击查看更多>>
资源描述

《一种数据校验值生成方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种数据校验值生成方法及系统.pdf(9页珍藏版)》请在专利查询网上搜索。

本发明涉及数据校验值生成方法一种数据校验值生成方法,包括以下步骤:S100:获取N个数据表内的数据;S200:获取数据表内数据的数值;S300:计算所述数值的每一数值Axy(x1,2,3,4,y1,2,3,4)的绝对值,若Axy0,则取Axy的J次方后的正值并累加,获取校验值N2;计算所述数值的每一行数值之和Px(x1,2,3,4),若Px0,则取px的K次方后累加各值,获取校验值N3;计算所述数。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1