数据处理的方法及装置的制作方法

文档序号:4129297阅读:97来源:国知局
专利名称:数据处理的方法及装置的制作方法
技术领域
本发明属于数据处理领域,尤其涉及一种数据处理的方法及装置。
背景技术
数据是对事实、概念或指令的一种表达形式,可由人工或自动化装置进行处理。数 据的形式可以是数字、文字、图形或声音等,而数据在经过解释并赋予一定的意义后,便成 为信息。数据处理是对数据的采集、存储、检索、加工、变换和传输,贯穿于社会生产和生活 的各个领域,基本的目的是从大量的、可能是杂乱无章的、难以理解的数据中抽取并推导出 对某些特定的人们来说是有价值和意义的数据。

发明内容
本发明提供了一种数据处理的方法,具体技术方案如下一种数据处理的方法,所述方法包括将待处理数组进行预处理;采用预设处理方法对经过预处理的待处理数组进行二次处理,得到二次处理结 果;从所述二次处理结果的预定位置获取索引号;根据所述索引号从所述二次处理结果中获取预定位数的数据;将所述获取的数据转换为十进制数据;判断所述十进制数据的位长是否小于第二预设长度,如果是,则将所述十进制数 据的高位补零至第二预设长度,并将所述高位补零至第二预设长度的十进制数据作为处理 后的数据;否则,从所述十进制数据的低位开始连续获取第二预设长度的数据作为处理后 的数据。所述将待处理数组进行预处理包括将所述待处理数组转换为十六进制数据数组;判断所述转换后得到的待处理数组的长度是否小于第一预设长度,如果是,填充 所述转换后得到的待处理数组至第一预设长度;将所述填充后得到的待处理数组的内容连接起来。所述填充所述转换后得到的待处理数组至第一预设长度包括将所述转换后得到 的待处理数组的右端填0补齐至第一预设长度。所述将所述填充后得到的待处理数组的内容连接起来包括将所述填充后得到的 后一个待处理数组的内容连接到前一个待处理数组后。所述采用预设处理方法对经过预处理的待处理数组进行二次处理,得到二次处理 结果,包括采用预设处理方法根据预先设定的秘密对经过预处理的待处理数组进行二次 处理,得到二次处理结果。所述采用预设处理方法根据预先设定的秘密对经过预处理的待处理数组进行二次处理,得到二次处理结果,包括第一步、在所述预先设定的秘密右端填充0至特定长度;第二步、将第一步的连接结果与第一特定数据做异或运算;第三步、将所述经过预处理的待处理数组的内容连接到第二步的运算结果后;第四步、采用所述预设处理方法对第三步的连接结果进行处理;第五步、将所述第一步的连接结果与第二特定数据做异或运算;第六步、将第四步的处理结果连接到第五步的运算结果后;第七步、采用所述预设处理方法对第六步的连接结果进行处理,得到二次处理结^ ο在所述第一步之前,所述方法还包括当所述预先设定的秘密的长度大于特定长 度时,采用所述预设处理方法对所述预先设定的秘密进行处理。所述第一特定数据与第二特定数据是预先预定的,并由所述预设处理方法决定。所述预设处理方法为无碰撞的单向处理方法,包括指纹算法或加密用散列算法。所述从所述二次处理结果的预定位置获取索引号还包括从所述二次处理结果的预定位置取出预定位数的比特位,并判断所述取出的比特 位对应的十进制数是否超过所述二次处理结果的长度,如果是,将所取出的比特位对应的 十进制数对所述二次处理结果的长度求余,将所得到的余数作为索引号。根据所述索引号从所述二次处理结果中获取预定位数的数据包括从所述第二处理结果中与所述索引号对应的位置处开始连续获取预定位数的数 据;或按照预定公式对所述索引号进行计算得到算术右移位数;将所述二次处理结果按照所述算术右移位数进行算术右移;从所述右移后的二次处理结果的低位开始连续获取预定位数的数据。所述预定公式为BITS = 128-LBS4*8,其中,BITS表示算术右移位数,LBS4表示 索引号。一种数据处理的装置,所述装置包括预处理单元,用于对待处理数组进行预处理,并将预处理过的待处理数组输出给 二次处理单元;二次处理单元,用于根据预设处理方法对所述预处理过的待处理数组进行二次处 理,得到二次处理结果,并将所述二次处理结果输出给第一获取单元;第一获取单元,用于从所述二次处理结果的预定位置获取索引号,并将所述索引 号输出给第二获取单元;第二获取单元,用于根据所述索引号从所述二次处理结果中获取预定位数的数 据,将所述预定位数的数据输出给变换单元;变换单元,用于将所述预定位数的数据转换为十进制数据,并将所述十进制数据 输出给判断单元;判断单元,用于判断所述十进制数据的位数是否小于第二预设长度,并将判断结 果及所述十进制数据输出给输出单元;
输出单元,用于在所述十进制数据的位数不小于第二预定长度时,从所述十进制 数据的低位开始连续取第二预定长度的数据作为处理后的数据并输出;在所述十进制数据 的位数小于第二预定长度时,将所述十进制数据的高位补零至第二预定长度,将高位补零 后的数据作为处理后的数据并输出。所述预处理单元包括第一转换模块,用于将所述待处理数组转换为十六进制数据数组,并将所述转换 后得到的待处理数组输出给第一判断模块;第一判断模块,用于判断经过所述第一转换模块转换后得到待处理数组的长度是 否达到第一预设长度;填充模块,用于将所述第一转换模块转换后得到的待处理数组的右端填0补齐至 第一预设长度;组合模块,用于将所述填充模块填充得到的待处理数组的内容连接起来。所述将所述填充模块填充得到的待处理数组的内容连接起来包括将所述填充得 到的后一个待处理数组的内容连接到前一个待处理数组后。所述二次处理单元包括存储模块,用于存储第一特定数据及第二特定数据;预处理模块,用于对预先设定的秘密进行处理,得到特定长度的预先设定的秘 密;第一计算模块,用于将所述预处理模块生成的所述特定长度的预先设定的秘密与 所述第一特定数据做异或运算;第一填充模块,将所述预处理单元处理过的待处理数组的内容连接到所述第一计 算模块的运算结果后;第二计算模块,用于采用所述预设处理方法对所述第一填充模块的连接结果进行 运算;第三计算模块,用于将所述预处理模块生成的所述特定长度的预先设定的秘密与 所述第二特定数据做异或运算;第二填充模块,用于将所述第二计算模块的运算结果连接到所述第三计算模块的
运算结果后;第四计算模块,用于采用所述预设处理方法对所述第二填充模块的连接结果进行 计算,得到二次处理结果。所述二次处理单元还包括判断模块,用于判断所述预先设定的秘密的长度是否大于特定长度;处理模块,用于当所述判断模块的判断结果为是时,将所述大于特定长度的预先 设定的秘密采用预设处理方法进行处理。所述预设处理方法为无碰撞的单向算法,包括指纹算法或加密用散列算法。所述第二获取单元包括第二判断模块,用于判断接收到的索引号是否超过所述二次处理结果的长度;第二转换模块,用于当所述第二判断模块的判断结果为是时,将所述索引号转换 为不超过二次处理结果长度的值。
7
所述将所述索引号转换为不超过二次处理结果长度的值包括将所取出的比特位 对应的十进制数对所述二次处理结果的长度求余,将所得到的余数作为索引号。所述第二获取单元还包括计算模块,用于根据索引号计算所述二次处理结果的算术右移位数;右移模块,用于根据所述算法右移位数对所述二次处理结果进行算术右移;第三获取模块,用于从所述算术右移后的二次处理结果的低位开始获取预定位数 的数据。其特征在于,所述预定公式为BITS = 128_LBS4*8,其中,BITS表示算术右移位 数,LBS4表示索引号。有益效果该数据处理方法可以将一组数据或几组长度不等、格式不同的数据进 行整合处理后,生成固定长度、固定格式的数据,该生成的数据具有随机性好、处理过程不 可逆等特点,可以运用于身份识别等领域。


图1是本发明实施例1提供的一种数据处理的方法流程图;图2是本发明实施例2提供的一种数据处理的装置框图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方 式作进一步的详细描述。实施例1本实施例提供了一种数据处理的方法,参见图1,所述方法具体如下101、将待处理数组中的内容转换为十六进制数据;本实施例中,以待处理的第一数组、第二数组为例进行说明,其中,第一数组为字 符数组Cl[] = { ‘1’,‘2’,‘3’,‘4’,‘5’,‘6’,‘7’,‘8’ },将该第一数组的内容转换为十 进制为“ 12345678”,再将该十进制数据转换为十六进制数据数组后得到的第一数组Cl [] ={0xBC,0x61,0x4E},第 二数组为数组 C2 = {0x5A,0x83,0x15,0x23,0x91,OxBO,0x67, 0x45, OxEO, 0x90, OxlA, 0xA4, OxAF, 0x31,0x5C,0xC3,0x20,0x56,0x51,0x6B},该数组的内 容为十六进制数据,所以,这里不需要进行转换;优选地,本实施例中所提到的数据均是按 照BIG-ENDIAN(低地址存放最高有效字节)形式进行存储的。102、对转换后得到的待处理数组的内容进行填充;具体地,判断转换后得到的待处理数组的长度是否小于第一预设长度,如果是,则 将转换后得到的待处理数组的内容进行填充;具体地,在转换后得到的待处理数组的右端填0补齐至第一预设长度。具体地,第一预设长度为128 ;本实施例中,102中转换得到的第一数组和第二数组的长度分别为3和20,均小 于128,在转换后得到的第一数组及第二数组的右端分别填充125和108个00,得到填充后 的第一数组 Cl [] = {0xBC,0x61,0x4E,125个0x00},第二数组C2[] = {0x5A,0x83,0x15, 0x23,0x91,OxBO,0x67,0x45,OxEO,0x90,OxlA,0xA4,OxAF,Ox 31,0x5C,OxC 3,0x20,0x56,0x51,0x6B,108 个 0x00};103、将填充后的待处理数组的内容连接起来;具体地,将填充后的数据数组的内容连接起来是指将后一个填充后得到的待处 理数组的内容连接到前一个填充后的待处理数组中;例如,将填充后的第二数组C2[]的内容连接到第一数组Cl []中,得到连接后的数 组 ci[] = {0xBC,0x61,0x4E,125 个 0x00,0x5A,0x83,0x15,0x23,0x91,OxBO,0x67,0x45, OxEO,0x90,OxlA,0xA4,OxAF,Ox 31,0x5C,0xC 3,0x20,0x56,0x51,0x6B,108 个0x00};程序实现时,采用函数strcat(cl,c2)即可实现将第二数组C2的内容连接到第一 数组Cl中。104、采用预设处理方法并根据预先设定的秘密,对连接后得到的待处理数组进行 处理,得到二次处理结果;具体地,预设处理方法为无碰撞单向处理方法,包括指纹算法或安全散列算法。需要说明的是,采用预设处理方法并根据预先设定的秘密,对连接后得到的待处 理数组进行处理,还需要用到另外两个固定且不同的十六进制数据,该数据是由采用的预 设处理方法所决定的,用ipad和opad来标识,例如,当采用的预设处理方法为安全散列算 法 HMAC-shal 时,ipad 为"Ox 36”、opad 为 “0x5C” ;具体地,预设处理方法用H标识,预先设定的秘密用数组K标识,其中,数组K的内 容是十六进制数据,连接后得到的待处理数组用text标识,则,采用预设处理方法并根据 预先设定的秘密,对连接后得到的待处理数组进行处理,得到二次处理结果的过程如下第一步、在K右端添加0来创建一个长度为B的数组。(例如,如果K的长度是20 时,B = 64,则在K右端加入44个“0x00”);第二步、将第一步中所创建的数组中的内容与ipad做异或运算;第三步、将text的内容连接到第二步的运算结果后;第四步、用H对第三步中得到的连接结果进行处理;第五步、将第一步中创建的数组中的内容与opad做异或运算;第六步、再将第四步的处理结果连接到第五步的运算结果后;第七步、用H对第六步中得到的连接结果进行处理,得到二次处理结果。这里所指的连接方法与103中所述的连接方法是相同的,此处就不再赘述。具体实现时,还可以将待处理数组作为预先约定的秘密,例如,待处理数组有第一 数组、第二数组和第三数组的情况下,可以将待处理的第一数组及第二数组按照101至103 所述的方法进行处理,待处理的第三数组在经过101处理后作为K在104中使用。本步骤还包括判断预先设定的秘密的长度是否大于特定长度,当所述预先设定 的秘密的长度大于特定长度时,采用预设处理方法对所述预先设定的秘密进行处理。例如,采用上述七个步骤对103中的连接结果进行处理后,得到的二次处理结果 C[] = {Oxlf,0x86,0x98,0x69,OxOE,0x02,OxCA,0x16,0x61,0x50,OxEF,OxEF,0x19,OxDA, 0x8E, 0x94,0x5B, 0x55,0x5a,0x09},二次处理结果的数组的内容为 “0xlf8698690E02CA166 150EFEF19DA8E945B555a09"o105、从二次处理结果的预定位置连续取出预定个数的比特位作为索引号;具体地,所述预定位置可以是二次处理结果的最后一个字节处、第一个字节处,另外,如果二次处理结果的长度是已知的,则所述预定位置还可以是二次处理结果中间的任 意一个字节处,如二次处理结果的中间位置等;本实施例中,从二次处理结果的最后一个字节中取出低四位作为索引号,当然也 可以将最后一个字节作为索引号;进一步地,本步骤还包括判断索引号是否超过二次处理结果的长度,这是为了确 保获取的索引号不会越界,避免错误情况的出现;具体地,判断索引号是否超过二次处理结果的长度为将获取的索引号转换为十 进制数据,该十进制数据与二次处理结果的长度比较大小,如果大于二次处理结果的长度, 则认为索引号越界,此时,将索引号转换为不超过二次处理结果长度的值,具体为将索引 号转换为十进制数据后对二次处理结果求余,将计算得到的余数作为索引号,具体的算法 包括则将索引号转换为十进制数除以二次处理结果的长度得到的余数作为索引号,或 者将索引号对应的十进制减去所述二次处理结果的长度的整数倍后得到的数值作为索引 号;例如,取104 中得到的二次处理结果“0xlf8698690E02CA166150EFEF19DA8E94585 55a09”的最后一个字节“0x09”的低四位“0x9”作为索引号,则获得的索引号为9。106、从二次处理结果的索引号指向的位置幵始获取预定位数的数据;具体地,将二次处理结果按字节从0幵始编号,然后,在编号后的二次处理结果中 找到与索引号相对应的位置,从该位置幵始连续获取预定位数的数据。具体地,还包括将获取的预定位数的数据转换为一个无符号、大端字节的整数。例如,从二次处理结果中取出32位数据,则将104中得到的二次处理结果编号,得

权利要求
一种数据处理的方法,其特征在于,所述方法包括将待处理数组进行预处理;采用预设处理方法对经过预处理的待处理数组进行二次处理,得到二次处理结果;从所述二次处理结果的预定位置获取索引号;根据所述索引号从所述二次处理结果中获取预定位数的数据;将所述获取的数据转换为十进制数据;判断所述十进制数据的位长是否小于第二预设长度,如果是,则将所述十进制数据的高位补零至第二预设长度,并将所述高位补零至第二预设长度的十进制数据作为处理后的数据;否则,从所述十进制数据的低位开始连续获取第二预设长度的数据作为处理后的数据。
2.根据权利要求1所述的方法,其特征在于,所述将待处理数组进行预处理包括 将所述待处理数组转换为十六进制数据数组;判断所述转换后得到的待处理数组的长度是否小于第一预设长度,如果是,填充所述 转换后得到的待处理数组至第一预设长度;将所述填充后得到的待处理数组的内容连接起来。
3.根据权利要求2所述的方法,其特征在于,所述填充所述转换后得到的待处理数组 至第一预设长度包括将所述转换后得到的待处理数组的右端填0补齐至第一预设长度。
4.根据权利要求2所述的方法,其特征在于,所述将所述填充后得到的待处理数组的 内容连接起来包括将所述填充后得到的后一个待处理数组的内容连接到前一个待处理数组后。
5.根据权利要求1所述的方法,其特征在于,所述采用预设处理方法对经过预处理的 待处理数组进行二次处理,得到二次处理结果,包括采用预设处理方法根据预先设定的秘 密对经过预处理的待处理数组进行二次处理,得到二次处理结果。
6.根据权利要求5所述的方法,其特征在于,所述采用预设处理方法根据预先设定的 秘密对经过预处理的待处理数组进行二次处理,得到二次处理结果,包括第一步、在所述预先设定的秘密右端填充0至特定长度;第二步、将第一步的连接结果与第一特定数据做异或运算;第三步、将所述经过预处理的待处理数组的内容连接到第二步的运算结果后;第四步、采用所述预设处理方法对第三步的连接结果进行处理;第五步、将所述第一步的连接结果与第二特定数据做异或运算;第六步、将第四步的处理结果连接到第五步的运算结果后;第七步、采用所述预设处理方法对第六步的连接结果进行处理,得到二次处理结果。
7.根据权利要求6所述的方法,其特征在于,在所述第一步之前,所述方法还包括当 所述预先设定的秘密的长度大于特定长度时,采用所述预设处理方法对所述预先设定的秘 密进行处理。
8.根据权利要求6所述的方法,其特征在于,所述第一特定数据与第二特定数据是预 先预定的,并由所述预设处理方法决定。
9.根据权利要求1所述的方法,其特征在于,所述预设处理方法为无碰撞的单向处理 方法,包括指纹算法或加密用散列算法。
10.根据权利要求1所述的方法,其特征在于,所述从所述二次处理结果的预定位置获 取索引号还包括从所述二次处理结果的预定位置取出预定位数的比特位,并判断所述取出的比特位对 应的十进制数是否超过所述二次处理结果的长度,如果是,将所取出的比特位对应的十进 制数对所述二次处理结果的长度求余,将所得到的余数作为索引号。
11.根据权利要求1所述的方法,其特征在于,根据所述索引号从所述二次处理结果中 获取预定位数的数据包括从所述第二处理结果中与所述索引号对应的位置处开始连续获取预定位数的数据; 或按照预定公式对所述索引号进行计算得到算术右移位数; 将所述二次处理结果按照所述算术右移位数进行算术右移; 从所述右移后的二次处理结果的低位开始连续获取预定位数的数据。
12.根据权利要求11所述的方法,其特征在于,所述预定公式为BITS= 128-LBS4*8, 其中,BITS表示算术右移位数,LBS4表示索引号。
13.一种数据处理的装置,其特征在于,所述装置包括预处理单元,用于对待处理数组进行预处理,并将预处理过的待处理数组输出给二次 处理单元;二次处理单元,用于根据预设处理方法对所述预处理过的待处理数组进行二次处理, 得到二次处理结果,并将所述二次处理结果输出给第一获取单元;第一获取单元,用于从所述二次处理结果的预定位置获取索引号,并将所述索引号输 出给第二获取单元;第二获取单元,用于根据所述索引号从所述二次处理结果中获取预定位数的数据,将 所述预定位数的数据输出给变换单元;变换单元,用于将所述预定位数的数据转换为十进制数据,并将所述十进制数据输出 给判断单元;判断单元,用于判断所述十进制数据的位数是否小于第二预设长度,并将判断结果及 所述十进制数据输出给输出单元;输出单元,用于在所述十进制数据的位数不小于第二预定长度时,从所述十进制数据 的低位开始连续取第二预定长度的数据作为处理后的数据并输出;在所述十进制数据的位 数小于第二预定长度时,将所述十进制数据的高位补零至第二预定长度,将高位补零后的 数据作为处理后的数据并输出。
14.根据权利要求13所述的装置,其特征在于,所述预处理单元包括第一转换模块,用于将所述待处理数组转换为十六进制数据数组,并将所述转换后得 到的待处理数组输出给第一判断模块;第一判断模块,用于判断经过所述第一转换模块转换后得到待处理数组的长度是否达 到第一预设长度;填充模块,用于将所述第一转换模块转换后得到的待处理数组的右端填0补齐至第一 预设长度;组合模块,用于将所述填充模块填充得到的待处理数组的内容连接起来。
15.根据权利要求14所述的装置,其特征在于,所述将所述填充模块填充得到的待处 理数组的内容连接起来包括将所述填充得到的后一个待处理数组的内容连接到前一个待 处理数组后。
16.根据权利要求13所述的装置,其特征在于,所述二次处理单元包括 存储模块,用于存储第一特定数据及第二特定数据;预处理模块,用于对预先设定的秘密进行处理,得到特定长度的预先设定的秘密; 第一计算模块,用于将所述预处理模块生成的所述特定长度的预先设定的秘密与所述 第一特定数据做异或运算;第一填充模块,将所述预处理单元处理过的待处理数组的内容连接到所述第一计算模 块的运算结果后;第二计算模块,用于采用所述预设处理方法对所述第一填充模块的连接结果进行运算;第三计算模块,用于将所述预处理模块生成的所述特定长度的预先设定的秘密与所述 第二特定数据做异或运算;第二填充模块,用于将所述第二计算模块的运算结果连接到所述第三计算模块的运算 结果后;第四计算模块,用于采用所述预设处理方法对所述第二填充模块的连接结果进行计 算,得到二次处理结果。
17.根据权利要求16所述的方法,其特征在于,所述二次处理单元还包括 判断模块,用于判断所述预先设定的秘密的长度是否大于特定长度;处理模块,用于当所述判断模块的判断结果为是时,将所述大于特定长度的预先设定 的秘密采用预设处理方法进行处理。
18.根据权利要求13所述的装置,其特征在于,所述预设处理方法为无碰撞的单向算 法,包括指纹算法或加密用散列算法。
19.根据权利要求13所述的装置,其特征在于,所述第二获取单元包括第二判断模块,用于判断接收到的索引号是否超过所述二次处理结果的长度; 第二转换模块,用于当所述第二判断模块的判断结果为是时,将所述索引号转换为不 超过二次处理结果长度的值。
20.根据权利要求19所述的装置,其特征在于,所述将所述索引号转换为不超过二次 处理结果长度的值包括将所取出的比特位对应的十进制数对所述二次处理结果的长度求 余,将所得到的余数作为索引号。
21.根据权利要求13所述的装置,其特征在于,所述第二获取单元还包括 计算模块,用于根据索引号计算所述二次处理结果的算术右移位数;右移模块,用于根据所述算法右移位数对所述二次处理结果进行算术右移; 第三获取模块,用于从所述算术右移后的二次处理结果的低位开始获取预定位数的数据。
22.根据权利要求21所述的装置,其特征在于,所述预定公式为BITS= 128-LBS4*8, 其中,BITS表示算术右移位数,LBS4表示索引号。
全文摘要
本发明公开了一种数据处理的方法及装置,属于数据处理领域。所述方法包括将待处理数组进行预处理;采用预设处理方法对经过预处理的待处理数组进行二次处理,得到二次处理结果;从所述二次处理结果的预定位置获取索引号;根据所述索引号从所述二次处理结果中获取预定位数的数据;将所述获取的数据转换为十进制数据;判断所述十进制数据的位长是否小于第二预设长度,如果是,则将所述十进制数据的高位补零至第二预设长度,并将所述高位补零至第二预设长度的十进制数据作为处理后的数据;否则,从所述十进制数据的低位开始连续获取第二预设长度的数据作为处理后的数据。处理方法简单,处理后数据具有不可逆的特性,可以用于身份认证领域。
文档编号G06F17/30GK101950301SQ20101029203
公开日2011年1月19日 申请日期2010年9月26日 优先权日2010年9月26日
发明者于华章, 陆舟 申请人:北京飞天诚信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1