一种紧凑且唯一的随机字符串的生成方法与流程

文档序号:17081411发布日期:2019-03-09 00:18阅读:358来源:国知局
一种紧凑且唯一的随机字符串的生成方法与流程

本发明涉及一种字符串的生成方法,更具体地说,涉及一种紧凑且唯一的随机字符串的生成方法。



背景技术:

在进行信息表达的时候,经常会操作各种各样的信息载体,以文件为例,文件就是一种非常常见的信息载体,现在it系统中操作的文件数量非常庞大。文件需要以文件名为标识,文件名由一定长度的字符串组成。文件的组织结构为多层次文件夹的层级结构,在每层文件夹中,均不能存在相同的文件名,因此生成唯一的文件名就是一个关键的问题,而目前生成文件名普遍采用的是基于系统时间或者基于uuid字符串的方法。除了文件,其他类型信息载体,也经常面临着如何方便的进行唯一命名的问题。

基于系统时间和随机数技术生成字符串时,一般所用时间的最小单位为毫秒,因此,一毫秒内只可生成一个不重复的字符串,如果对不重复字符串的需求速度超过了每毫秒一个的速度,则无法保证生成字符串的唯一性,为了解决此问题,这类技术方案会在时间字符串后增加一定位数的随机字符串,这会造成所生成字符串的长度增加,并且也不能真正保证唯一性,因为随机字符串序列并不能保证所生成字符串的唯一性。同时这种技术所生成的字符串向外界泄露了字符串产生瞬间的时间信息,这在一些需要保持较高机密性的场合是不合适的。

基于uuid技术生成字符串时,字符串的长度是32位,这样长度的字符串在大量使用的场景下,会占用较多的存储空间,另外一个问题是,一些操作系统对于文件路径的最大字符数有限制,当每个文件使用的文件名较长时,多个文件夹累加的情况下,就更容易达到超过系统的路径最大字符数限制。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术中的缺陷,提供一种紧凑且唯一的随机字符串的生成方法,解决目前生成唯一随机字符串的技术不能保证所生成字符串的随机性或者生成的字符串长度过长不够紧凑的问题。

本发明解决其技术问题所采用的技术方案是:构造一种紧凑且唯一的随机字符串的生成方法,基于uuid技术保证字符串的唯一,用提高组成字符集合的方法减少随机字符串的长度,字符串完全随机,无任何信息泄露。

在本发明所述的紧凑且唯一的随机字符串的生成方法中,所述紧凑且唯一的随机字符串的生成方法中准备字符串可包含的字符的集合cs,所述集合cs定义的字符指示40个以上。

在本发明所述的紧凑且唯一的随机字符串的生成方法中,所述紧凑且唯一的随机字符串的生成方法中生成uuid字符串后将uuid字符串转换为整数n1。

在本发明所述的紧凑且唯一的随机字符串的生成方法中,所述的紧凑且唯一的随机字符串的生成方法的流程为:

s1定义字符的集合cs;

s2进行随机字符串的生成过程;s21生成uuid字符串,s22uuid字符串转换为整数n1;

s3开始一个循环,在循环中,以整数方式计算n1/cs长度,得到一个结果,一个余数,分别标记为r1和r2。将r2累加到字符串rs中,然后检查r1是否为0,当r1是0的时候,表示计算结束,终止循环,将rs反序排列得到最终结果。如果r1不是0,则将n1设置为r1,继续循环操作。

实施本发明的一种紧凑且唯一的随机字符串的生成方法,具有以下有益效果:本发明计算量小,效率高;并且能保证字符串的唯一性;本发明能保证字符串长度的紧凑性,也即具有较小的长度,且字符集合越多,长度越小,因此此算法具有很好的扩展性。本发明字符串不包含任何敏感信息,适用于包括需要高度机密性的各种场合。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明的基于数据库的jaas扩展验证流程图

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

所述紧凑且唯一的随机字符串的生成方法中准备字符串可包含的字符的集合cs,所述集合cs定义的字符指示40个以上。

进一步地,所述紧凑且唯一的随机字符串的生成方法中生成uuid字符串后将uuid字符串转换为整数n1。

进一步地,如图1所示,所述的紧凑且唯一的随机字符串的生成方法的流程为:

s1定义字符的集合cs;

s2进行随机字符串的生成过程;s21生成uuid字符串,s22uuid字符串转换为整数n1;

s3开始一个循环,在循环中,以整数方式计算n1/cs长度,得到一个结果,一个余数,分别标记为r1和r2。将r2累加到字符串rs中,然后检查r1是否为0,当r1是0的时候,表示计算结束,终止循环,将rs反序排列得到最终结果。如果r1不是0,则将n1设置为r1,继续循环操作。

尽管通过以上实施例对本发明进行了揭示,但本发明的保护范围并不局限于此,在不偏离本发明构思的条件下,对以上各构件所做的变形、替换等均将落入本发明的权利要求范围内。



技术特征:

技术总结
本发明涉及一种紧凑且唯一的随机字符串的生成方法,所述紧凑且唯一的随机字符串的生成方法中准备字符串可包含的字符的集合CS,所述集合CS定义的字符指示40个以上;生成UUID字符串后将UUID字符串转换为整数N1。本发明能保证字符串长度的紧凑性,也即具有较小的长度,且字符集合越多,长度越小,因此此算法具有很好的扩展性。本发明字符串不包含任何敏感信息,适用于包括需要高度机密性的各种场合。

技术研发人员:刘可;张立杰
受保护的技术使用者:深圳竹云科技有限公司
技术研发日:2018.09.26
技术公布日:2019.03.08
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1