利索能及
我要发布
收藏
专利号: 2018103411371
申请人: 无锡科技职业学院
专利类型:发明专利
专利状态:已下证
更新日期:2025-10-14
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种应用于数据校验的哈希算法,其特征在于其包括以下步骤:步骤1、读入需要进行数据校验操作的原始待处理数据;

步骤2、指定一个二进制形式数据的位数L作为指定字长,将待处理数据按照所述指定字长L从高位到低位进行分组,并保存各组数据;

步骤3、使用黄金分割参数设置哈希码的初始值I,所述黄金分割参数为:0.618,所述初始值I的设置方法包括如下步骤:(1)计算所述指定字长L能表达的最大无符号整数与所述黄金分割参数的乘积:(2)对步骤(1)中得到的乘积取整,把乘积的整数部分赋值为哈希码的所述初始值I;

步骤4、使用所述黄金分割参数设置哈希码的位移数N;

步骤5、将当前的哈希码按照步骤4得到的所述位移数N进行循环左移后,与现存的数据组中最高位的那组的数据相加,产生新的哈希码;第一次进行循环左移运算的时候,哈希码使用步骤3中得到的所述初始值I;

步骤6、删除在所述步骤5中参与过运算的当前最高位的那组数据;

步骤7、重复所述步骤5和所述步骤6直至所述步骤1中保存的分组数据都删除完毕,所得哈希码为最终的校验值,采用所述校验值进行数据校验。

2.根据权利要求1所述一种应用于数据校验的哈希算法,其特征在于:所述步骤2中将待处理数据进行所述分组时,如果所述待处理数据的二进制形式的位数不是所述指定字长L的整数倍数,则需要填充数据,使之成为指定字长的整数倍数,所述填充数据方法为:(Ⅰ)在所述待处理数据尾部填充特定数据的二进制形式,所述特定数据以为0xA为起点,其具体形式为:

0xA1B3C5D7E9F1A3B5C7D9E1F3(Ⅱ)从所述待处理数据的起点开始依次取出数据,每次取出一位,填入所述待处理数据尾部,直至填充后的待处理数据的二进制形式的位数为所述指定字长L的整数倍数。

3.根据权利要求1所述一种应用于数据校验的哈希算法,其特征在于:所述步骤4中所述设置哈希码的位移数N的方法包括如下步骤:A、通过所述黄金分割参数与所述指定字长L进行运算,计算出一个中间值:中间值 = L*(1 - 0.618)

B、对步骤A中得到的所述中间值做取整运算;

C、如果中间值的整数部分是奇数,则将整数部分赋值为所述设置哈希码的位移数N,如果中间值的整数部分是偶数,则加1后赋值为所述设置哈希码的位移数N。