一种紧凑且唯一的随机字符串的生成方法技术

技术编号:20546076 阅读:15 留言:0更新日期:2019-03-09 19:00
本发明专利技术涉及一种紧凑且唯一的随机字符串的生成方法,所述紧凑且唯一的随机字符串的生成方法中准备字符串可包含的字符的集合CS,所述集合CS定义的字符指示40个以上;生成UUID字符串后将UUID字符串转换为整数N1。本发明专利技术能保证字符串长度的紧凑性,也即具有较小的长度,且字符集合越多,长度越小,因此此算法具有很好的扩展性。本发明专利技术字符串不包含任何敏感信息,适用于包括需要高度机密性的各种场合。

A Compact and Unique Method for Generating Random Strings

The present invention relates to a compact and unique method for generating random strings. The compact and unique method for generating random strings prepares the set CS of characters that the set CS defines, indicating more than 40 characters, and converts the UUID string into integer N1 after generating the UUID string. The invention can ensure the compactness of the string length, that is, it has a smaller length, and the more character sets, the smaller the length, so the algorithm has good expansibility. The strings of the invention do not contain any sensitive information and are suitable for various occasions including those requiring high confidentiality.

【技术实现步骤摘要】
一种紧凑且唯一的随机字符串的生成方法
本专利技术涉及一种字符串的生成方法,更具体地说,涉及一种紧凑且唯一的随机字符串的生成方法。
技术介绍
在进行信息表达的时候,经常会操作各种各样的信息载体,以文件为例,文件就是一种非常常见的信息载体,现在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,继续循环操作。尽管通过以上实施例对本专利技术进行了揭示,但本专利技术的保护范围并不局限于此,在不偏离本专利技术构思的条件下,对以上各构件所做的变形、替换等均将落入本专利技术的权利要求范围内。本文档来自技高网...

【技术保护点】
1.一种紧凑且唯一的随机字符串的生成方法,其特征在于,所述紧凑且唯一的随机字符串的生成方法中准备字符串可包含的字符的集合CS,所述集合CS定义的字符指示40个以上。

【技术特征摘要】
1.一种紧凑且唯一的随机字符串的生成方法,其特征在于,所述紧凑且唯一的随机字符串的生成方法中准备字符串可包含的字符的集合CS,所述集合CS定义的字符指示40个以上。2.根据权利要求1所述的紧凑且唯一的随机字符串的生成方法,其特征在于,所述紧凑且唯一的随机字符串的生成方法中生成UUID字符串后将UUID字符串转换为整数N1。3.根据权利要求1所述的紧凑且唯一的随机字符串的生成方法,其特征在于,所述的紧凑且唯一的随...

【专利技术属性】
技术研发人员:刘可张立杰
申请(专利权)人:深圳竹云科技有限公司
类型:发明
国别省市:广东,44

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

1