分布式ID的生成方法及装置制造方法及图纸

技术编号:27877552 阅读:16 留言:0更新日期:2021-03-31 00:59
本发明专利技术提供的分布式ID的生成方法及装置,方法包括:在当前服务本次需要生成一个分布式ID时,生成初始编码;利用所述初始编码,以及根据预先设置的校验码生成规则,生成校验码;将所述初始编码和所述校验码进行合成,得到本次需要生成的分布式ID;所述生成校验码,包括:从所述初始编码中进行数字采样,得到至少一个采样数字;将所述至少一个采样数字处理成一个十进制采样值;根据预先配置的校验位对应的位数,计算出所述校验位对应最大编码时的十进制校验值;将所述十进制采样值对所述十进制校验值进行取余计算;将取余计算得到的结果确定为与所述校验位对应的校验码。本方案,能够降低被穷举破解的风险。

【技术实现步骤摘要】
分布式ID的生成方法及装置
本专利技术涉及数据处理
,尤其涉及分布式ID的生成方法及装置。
技术介绍
分布式系统中,为了防止数据表占用过大的物理存储空间,经常采用分库分表相关技术。为便于分辨和管理,针对数据库中的数据表在生成分布式ID时,需要该分布式ID的全局唯一。目前有一种采用雪花算法生成分布式ID的方法,利用雪花算法生成的分布式ID具有有序性,可以提升数据库索引效率,但是正因为其有序性,可以通过穷举方式对分布式ID进行破解,利用破解的分布式ID可以实现数据访问,获取该分布式ID对应的数据。因此,需要提供一种分布式ID的生成方法,以降低被穷举破解的风险。
技术实现思路
本专利技术实施例提供了一种分布式ID的生成方法及装置,以降低被穷举破解的风险。第一方面,本专利技术实施例提供了分布式ID的生成方法,包括:在当前服务本次需要生成一个分布式ID时,生成初始编码;利用所述初始编码,以及根据预先设置的校验码生成规则,生成校验码;将所述初始编码和所述校验码进行合成,得到本次需要生成的分布式ID;所述生成校验码,包括:从所述初始编码中进行数字采样,得到至少一个采样数字;将所述至少一个采样数字处理成一个十进制采样值;根据预先配置的校验位对应的位数,计算出所述校验位对应最大编码时的十进制校验值;将所述十进制采样值对所述十进制校验值进行取余计算;将取余计算得到的结果确定为与所述校验位对应的校验码。优选地,在所述从所述初始编码中进行数字采样之前,进一步包括:将所述初始编码转换成十进制的值;从所述十进制的值中执行所述进行数字采样;所述将所述至少一个采样数字处理成一个十进制采样值,包括:针对所述至少一个采样数字中的每一个采样数字,将该采样数字乘以第一设定值,将乘积除以第二设定值得到商值,以及将该乘积对第三设定值取余计算得到取余值,将该商值与该取余值相加,得到至少一个变换后的采样数字;将所述至少一个变换后的采样数字相加,并对相加后得到的值乘以第四设定值,得到所述十进制采样值。优选地,进一步包括:配置所述初始编码和所述校验码在所述分布式ID中的位置;其中,所述初始编码在所述分布式ID的首端,所述校验码在所述分布式ID的尾端;将所述初始编码和所述校验码进行合成,包括:将所述初始编码按照所述校验位的位数左移;将左移后的所述初始编码与所述校验码按位或运算。优选地,所述初始编码包括以下编码区间:符号位、时间戳位、服务位和序列号位;进一步包括:配置所述每一个编码区间在所述分布式ID中的位置,以及,配置每一个编码区间的位数;所述生成与所述编码位对应的初始编码,包括:获取所述当前服务对应的唯一服务编码,将所述唯一服务编码放置在本次需要生成的分布式ID的所述服务位上;根据所述唯一服务编码,确定所述当前服务上一次生成的分布式ID中序列号位的编码是否为最大编码;若否,将所述上一次生成的分布式ID中序列号位的编码加1后得到的编码放置在本次需要生成的分布式ID的所述序列号位上,以及将所述上一次生成的分布式ID中时间戳位的编码放置在本次需要生成的分布式ID的所述时间戳位上;若是,则确定当前时间点到设定时间点的差值,将该差值对应的二进制编码放置在本次需要生成的分布式ID的所述时间戳位上,将本次需要生成的分布式ID的序列号位上设置为最小编码;将本次需要生成的分布式ID的符号位设置为预设值。第二方面,本专利技术实施例还提供了分布式ID的校验方法,包括;接收用户在进行数据访问时输入的分布式ID;从所述分布式ID中提取出初始编码和待校验的第一校验码;利用所述初始编码,按照分布式ID在生成时使用的校验码生成规则,生成第二校验码;在所述第一校验码与所述第二校验码相同时,则确定所述分布式ID合法,否则,确定所述分布式ID不合法。第三方面,本专利技术实施例还提供了分布式ID的生成装置,包括:初始编码生成单元,用于在当前服务本次需要生成一个分布式ID时,生成初始编码;校验码生成单元,用于利用所述初始编码,以及根据预先设置的校验码生成规则,生成校验码;合成单元,用于将所述初始编码和所述校验码进行合成,得到本次需要生成的分布式ID;所述校验码生成单元,具体用于执行如下操作:从所述初始编码中进行数字采样,得到至少一个采样数字;将所述至少一个采样数字处理成一个十进制采样值;根据预先配置的校验位对应的位数,计算出所述校验位对应最大编码时的十进制校验值;将所述十进制采样值对所述十进制校验值进行取余计算;将取余计算得到的结果确定为与所述校验位对应的校验码。优选地,进一步包括:转换单元,用于将所述初始编码转换成十进制的值;所述校验码生成单元用于从所述十进制的值中执行所述进行数字采样;所述校验码生成单元在执行所述将所述至少一个采样数字处理成一个十进制采样值时,包括:针对所述至少一个采样数字中的每一个采样数字,将该采样数字乘以第一设定值,将乘积除以第二设定值得到商值,以及将该乘积对第三设定值取余计算得到取余值,将该商值与该取余值相加,得到至少一个变换后的采样数字;将所述至少一个变换后的采样数字相加,并对相加后得到的值乘以第四设定值,得到所述十进制采样值;优选地,进一步包括:第一配置单元,用于配置所述初始编码和所述校验码在所述分布式ID中的位置;其中,所述初始编码在所述分布式ID的首端,所述校验码在所述分布式ID的尾端;所述合成单元,具体用于:将所述初始编码按照所述校验位的位数左移;将左移后的所述初始编码与所述校验码按位或运算。优选地,所述初始编码包括以下编码区间:符号位、时间戳位、服务位和序列号位;进一步包括:第二配置单元,用于配置所述每一个编码区间在所述分布式ID中的位置,以及,配置每一个编码区间的位数;所述初始编码生成单元,具体用于:获取所述当前服务对应的唯一服务编码,将所述唯一服务编码放置在本次需要生成的分布式ID的所述服务位上;根据所述唯一服务编码,确定所述当前服务上一次生成的分布式ID中序列号位的编码是否为最大编码;若否,将所述上一次生成的分布式ID中序列号位的编码加1后得到的编码放置在本次需要生成的分布式ID的所述序列号位上,以及将所述上一次生成的分布式ID中时间戳位的编码放置在本次需要生成的分布式ID的所述时间戳位上;若是,则确定当前时间点到设定时间点的差值,将该差值对应的二进制编码放置在本次需要生成的分布式ID的所述时间戳位上,将本次需要生成的分布式ID的序列号位上设置为最小编码;将本次需要生成的分布式ID的符号位设置为预设值。第四方面,本专利技术实施例还提供了分布式ID的校验装置,包括;接收单元,用于接收用户在进行数据访问时输入的分本文档来自技高网...

【技术保护点】
1.分布式ID的生成方法,其特征在于,包括:/n在当前服务本次需要生成一个分布式ID时,生成初始编码;/n利用所述初始编码,以及根据预先设置的校验码生成规则,生成校验码;/n将所述初始编码和所述校验码进行合成,得到本次需要生成的分布式ID;/n所述生成校验码,包括:/n从所述初始编码中进行数字采样,得到至少一个采样数字;/n将所述至少一个采样数字处理成一个十进制采样值;/n根据预先配置的校验位对应的位数,计算出所述校验位对应最大编码时的十进制校验值;/n将所述十进制采样值对所述十进制校验值进行取余计算;/n将取余计算得到的结果确定为与所述校验位对应的校验码。/n

【技术特征摘要】
1.分布式ID的生成方法,其特征在于,包括:
在当前服务本次需要生成一个分布式ID时,生成初始编码;
利用所述初始编码,以及根据预先设置的校验码生成规则,生成校验码;
将所述初始编码和所述校验码进行合成,得到本次需要生成的分布式ID;
所述生成校验码,包括:
从所述初始编码中进行数字采样,得到至少一个采样数字;
将所述至少一个采样数字处理成一个十进制采样值;
根据预先配置的校验位对应的位数,计算出所述校验位对应最大编码时的十进制校验值;
将所述十进制采样值对所述十进制校验值进行取余计算;
将取余计算得到的结果确定为与所述校验位对应的校验码。


2.根据权利要求1所述的方法,其特征在于,
在所述从所述初始编码中进行数字采样之前,进一步包括:将所述初始编码转换成十进制的值;
从所述十进制的值中执行所述进行数字采样;
所述将所述至少一个采样数字处理成一个十进制采样值,包括:
针对所述至少一个采样数字中的每一个采样数字,将该采样数字乘以第一设定值,将乘积除以第二设定值得到商值,以及将该乘积对第三设定值取余计算得到取余值,将该商值与该取余值相加,得到至少一个变换后的采样数字;
将所述至少一个变换后的采样数字相加,并对相加后得到的值乘以第四设定值,得到所述十进制采样值。


3.根据权利要求1所述的方法,其特征在于,
进一步包括:配置所述初始编码和所述校验码在所述分布式ID中的位置;其中,所述初始编码在所述分布式ID的首端,所述校验码在所述分布式ID的尾端;
将所述初始编码和所述校验码进行合成,包括:将所述初始编码按照所述校验位的位数左移;将左移后的所述初始编码与所述校验码按位或运算。


4.根据权利要求1-3中任一所述的方法,其特征在于,
所述初始编码包括以下编码区间:符号位、时间戳位、服务位和序列号位;
进一步包括:配置所述每一个编码区间在所述分布式ID中的位置,以及,配置每一个编码区间的位数;
所述生成与所述编码位对应的初始编码,包括:
获取所述当前服务对应的唯一服务编码,将所述唯一服务编码放置在本次需要生成的分布式ID的所述服务位上;
根据所述唯一服务编码,确定所述当前服务上一次生成的分布式ID中序列号位的编码是否为最大编码;
若否,将所述上一次生成的分布式ID中序列号位的编码加1后得到的编码放置在本次需要生成的分布式ID的所述序列号位上,以及将所述上一次生成的分布式ID中时间戳位的编码放置在本次需要生成的分布式ID的所述时间戳位上;
若是,则确定当前时间点到设定时间点的差值,将该差值对应的二进制编码放置在本次需要生成的分布式ID的所述时间戳位上,将本次需要生成的分布式ID的序列号位上设置为最小编码;
将本次需要生成的分布式ID的符号位设置为预设值。


5.分布式ID的校验方法,其特征在于,包括;
接收用户在进行数据访问时输入的分布式ID;
从所述分布式ID中提取出初始编码和待校验的第一校验码;
利用所述初始编码,按照分布式ID在生成时使用的校验码生成规则,生成第二校验码;
在所述第一校验码与所述第二校验码相同时,则确定所述分布式ID合法,否则,确定所述分布式ID不合法。


6.分布式ID的生成装置,其特征在于,包括:
初始编码生成单元,用于在当前服务本次需要生成一个分布式ID时,...

【专利技术属性】
技术研发人员:桑成刚张晓明
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1