CN109446491B - 一种紧凑且唯一的随机字符串的生成方法 - Google Patents
一种紧凑且唯一的随机字符串的生成方法 Download PDFInfo
- Publication number
- CN109446491B CN109446491B CN201811125638.2A CN201811125638A CN109446491B CN 109446491 B CN109446491 B CN 109446491B CN 201811125638 A CN201811125638 A CN 201811125638A CN 109446491 B CN109446491 B CN 109446491B
- Authority
- CN
- China
- Prior art keywords
- character string
- generating
- string
- compact
- unique random
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明涉及一种紧凑且唯一的随机字符串的生成方法,所述紧凑且唯一的随机字符串的生成方法中准备字符串可包含的字符的集合CS,所述集合CS定义的字符指示40个以上;生成UUID字符串后将UUID字符串转换为整数N1。本发明能保证字符串长度的紧凑性,也即具有较小的长度,且字符集合越多,长度越小,因此此算法具有很好的扩展性。本发明字符串不包含任何敏感信息,适用于包括需要高度机密性的各种场合。
Description
技术领域
本发明涉及一种字符串的生成方法,更具体地说,涉及一种紧凑且唯一的随机字符串的生成方法。
背景技术
在进行信息表达的时候,经常会操作各种各样的信息载体,以文件为例,文件就是一种非常常见的信息载体,现在IT系统中操作的文件数量非常庞大。文件需要以文件名为标识,文件名由一定长度的字符串组成。文件的组织结构为多层次文件夹的层级结构,在每层文件夹中,均不能存在相同的文件名,因此生成唯一的文件名就是一个关键的问题,而目前生成文件名普遍采用的是基于系统时间或者基于UUID字符串的方法。除了文件,其他类型信息载体,也经常面临着如何方便的进行唯一命名的问题。
基于系统时间和随机数技术生成字符串时,一般所用时间的最小单位为毫秒,因此,一毫秒内只可生成一个不重复的字符串,如果对不重复字符串的需求速度超过了每毫秒一个的速度,则无法保证生成字符串的唯一性,为了解决此问题,这类技术方案会在时间字符串后增加一定位数的随机字符串,这会造成所生成字符串的长度增加,并且也不能真正保证唯一性,因为随机字符串序列并不能保证所生成字符串的唯一性。同时这种技术所生成的字符串向外界泄露了字符串产生瞬间的时间信息,这在一些需要保持较高机密性的场合是不合适的。
基于UUID技术生成字符串时,字符串的长度是32位,这样长度的字符串在大量使用的场景下,会占用较多的存储空间,另外一个问题是,一些操作系统对于文件路径的最大字符数有限制,当每个文件使用的文件名较长时,多个文件夹累加的情况下,就更容易达到超过系统的路径最大字符数限制。
发明内容
本发明要解决的技术问题在于,针对现有技术中的缺陷,提供一种紧凑且唯一的随机字符串的生成方法,解决目前生成唯一随机字符串的技术不能保证所生成字符串的随机性或者生成的字符串长度过长不够紧凑的问题。
本发明解决其技术问题所采用的技术方案是:构造一种紧凑且唯一的随机字符串的生成方法,基于UUID技术保证字符串的唯一,用提高组成字符集合的方法减少随机字符串的长度,字符串完全随机,无任何信息泄露。
在本发明所述的紧凑且唯一的随机字符串的生成方法中,所述紧凑且唯一的随机字符串的生成方法中准备字符串包含的字符的集合CS,所述集合CS定义的字符至少40个以上。
在本发明所述的紧凑且唯一的随机字符串的生成方法中,所述紧凑且唯一的随机字符串的生成方法中生成UUID字符串后将UUID字符串转换为整数N1。
在本发明所述的紧凑且唯一的随机字符串的生成方法中,所述的紧凑且唯一的随机字符串的生成方法的流程为:
定义字符的集合CS;
进行随机字符串的生成过程;S21生成UUID字符串,S22:UUID字符串转换为整数N1;
开始一个循环,在循环中,以整数方式计算N1/CS长度,得到一个结果,一个余数,分别标记为R1和R2。将R2累加到字符串RS中,然后检查R1是否为0,当R1是0的时候,表示计算结束,终止循环,将RS反序排列得到最终结果。如果R1不是0,则将N1设置为R1,继续循环操作。
实施本发明的一种紧凑且唯一的随机字符串的生成方法,具有以下有益效果:本发明计算量小,效率高;并且能保证字符串的唯一性;本发明能保证字符串长度的紧凑性,也即具有较小的长度,且字符集合越多,长度越小,因此此算法具有很好的扩展性。本发明字符串不包含任何敏感信息,适用于包括需要高度机密性的各种场合。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明的基于数据库的JAAS扩展验证流程图
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
所述紧凑且唯一的随机字符串的生成方法中准备字符串包含的字符的集合CS,所述集合CS定义的字符至少40个以上。
进一步地,所述紧凑且唯一的随机字符串的生成方法中生成UUID字符串后将UUID字符串转换为整数N1。
进一步地,如图1所示,所述的紧凑且唯一的随机字符串的生成方法的流程为:
定义字符的集合CS;
进行随机字符串的生成过程;S21生成UUID字符串,S22:UUID字符串转换为整数N1;
开始一个循环,在循环中,以整数方式计算N1/CS长度,得到一个结果,一个余数,分别标记为R1和R2。将R2累加到字符串RS中,然后检查R1是否为0,当R1是0的时候,表示计算结束,终止循环,将RS反序排列得到最终结果。如果R1不是0,则将N1设置为R1,继续循环操作。
尽管通过以上实施例对本发明进行了揭示,但本发明的保护范围并不局限于此,在不偏离本发明构思的条件下,对以上各构件所做的变形、替换等均将落入本发明的权利要求范围内。
Claims (2)
1.一种紧凑且唯一的随机字符串的生成方法,其特征在于,所述紧凑且唯一的随机字符串的生成方法中准备字符串包含的字符的集合CS,所述集合CS定义的字符至少40个以上;
所述的紧凑且唯一的随机字符串的生成方法的流程为:
S1定义字符的集合CS;
S2进行随机字符串的生成过程;S21:生成UUID字符串,S22:UUID字符串转换为整数N1;
S3开始一个循环,在循环中,以整数方式计算N1/CS长度,得到一个结果,一个余数,分别标记为R1和R2;将R2累加到字符串RS中,然后检查R1是否为0,当R1是0的时候,表示计算结束,终止循环,将RS反序排列得到最终结果;如果R1不是0,则将N1设置为R1,继续循环操作。
2.根据权利要求1所述的紧凑且唯一的随机字符串的生成方法,其特征在于,所述紧凑且唯一的随机字符串的生成方法中生成UU I D字符串后将UU I D字符串转换为整数N1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811125638.2A CN109446491B (zh) | 2018-09-26 | 2018-09-26 | 一种紧凑且唯一的随机字符串的生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811125638.2A CN109446491B (zh) | 2018-09-26 | 2018-09-26 | 一种紧凑且唯一的随机字符串的生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109446491A CN109446491A (zh) | 2019-03-08 |
CN109446491B true CN109446491B (zh) | 2023-04-18 |
Family
ID=65544441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811125638.2A Active CN109446491B (zh) | 2018-09-26 | 2018-09-26 | 一种紧凑且唯一的随机字符串的生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109446491B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131202B (zh) * | 2020-10-10 | 2022-08-16 | 厦门悦讯信息科技股份有限公司 | 一种分布式文件存储和读取方法、终端设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106210161A (zh) * | 2016-06-24 | 2016-12-07 | 中国银联股份有限公司 | 一种短链接生成方法及系统 |
US9946810B1 (en) * | 2010-04-21 | 2018-04-17 | Stan Trepetin | Mathematical method for performing homomorphic operations |
-
2018
- 2018-09-26 CN CN201811125638.2A patent/CN109446491B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9946810B1 (en) * | 2010-04-21 | 2018-04-17 | Stan Trepetin | Mathematical method for performing homomorphic operations |
CN106210161A (zh) * | 2016-06-24 | 2016-12-07 | 中国银联股份有限公司 | 一种短链接生成方法及系统 |
Non-Patent Citations (2)
Title |
---|
Memory Modeling-Based Automatic Test Data Generation for String-Manipulating Programs;Feiyu Li et al.;《2012 19th Asia-Pacific Software Engineering Conference》;20121204;第95-104页 * |
基于DGA的恶意程序域名生成算法破解;徐国天;《信息网络安全》;20170930(第9期);第26-29页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109446491A (zh) | 2019-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542979B (zh) | 一种区块链系统快速同步及简精数据存储的方式 | |
CN108959386A (zh) | 分布式全局唯一id生成方法、装置、设备和存储介质 | |
CN103838860A (zh) | 一种基于动态副本策略的文件存储系统及其存储方法 | |
CN101478608A (zh) | 基于二维散列的海量数据的快速操作方法 | |
EP3384406A1 (en) | Combining hashes of data blocks | |
CN106407224A (zh) | 一种键值存储系统中文件压实的方法和装置 | |
CN104077420A (zh) | 一种数据导入HBase数据库的方法和装置 | |
Lau et al. | End-to-end network for twitter geolocation prediction and hashing | |
CN105447166A (zh) | 一种基于关键字查找信息的方法及系统 | |
CN102521312B (zh) | 一种文件索引的存储方法及文件系统 | |
CN105991282A (zh) | 口令生成方法及装置 | |
CN109446491B (zh) | 一种紧凑且唯一的随机字符串的生成方法 | |
CN101576919B (zh) | 标识生成方法和装置 | |
CN114218318B (zh) | 一种用于电力大数据的数据处理系统及方法 | |
Li et al. | {LVMT}: An efficient authenticated storage for blockchain | |
CN104216980B (zh) | 一种文件系统序列化操作的分类方法 | |
CN102693315A (zh) | 一种基于共享内存映射的url去重方法及装置 | |
CN102546293A (zh) | 基于哈希比特串复用的高速网络流量网络地址测量方法 | |
CN116484442A (zh) | 基于数据加密的智能售电数据存储方法 | |
CN109271797B (zh) | 一种提高数据库敏感信息安全性的方法及系统 | |
CN111339566A (zh) | 区块摘要方法、装置、计算机设备和存储介质 | |
CN115174344B (zh) | 一种适用于网管系统的OneID生成方法及生成器 | |
CN109977295A (zh) | 一种黑白名单匹配方法及装置 | |
CN115842633A (zh) | 基于区块链数据共享中的高效溯源方法 | |
CN110401451A (zh) | 基于字符集变换的自动机空间压缩方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 518000 4001, Block D, Building 1, Chuangzhi Yuncheng Lot 1, Liuxian Avenue, Xili Community, Xili Street, Nanshan District, Shenzhen, Guangdong Patentee after: Shenzhen Zhuyun Technology Co.,Ltd. Address before: 518000 East, 3rd floor, incubation building, China Academy of science and technology, 009 Gaoxin South 1st Road, Nanshan District, Shenzhen City, Guangdong Province Patentee before: SHENZHEN BAMBOOCLOUD TECHNOLOGY CO.,LTD. |
|
CP03 | Change of name, title or address |