CN109445749A - 一种不重复随机序列号生成方法及计算机终端 - Google Patents
一种不重复随机序列号生成方法及计算机终端 Download PDFInfo
- Publication number
- CN109445749A CN109445749A CN201811073754.4A CN201811073754A CN109445749A CN 109445749 A CN109445749 A CN 109445749A CN 201811073754 A CN201811073754 A CN 201811073754A CN 109445749 A CN109445749 A CN 109445749A
- Authority
- CN
- China
- Prior art keywords
- sequence number
- string
- random sequence
- random
- unique
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种不重复随机序列号生成方法及计算机终端。该方法包括:S1、选取多个字符组成唯一串字符集合;S2、根据预设映射算法从唯一串字符集合选取字符生成唯一字符串,预设映射算法包括:Am‑1W1+Am‑2W2+Am‑3W3+···+A1Wm+Wm=C;S3、生成随机字符串;S4、由唯一字符串和随机字符串组成随机序列号。通过实施本发明,引入唯一字符串,因为唯一字符串是不重复的,以此保证生成的序列号不重复;二是增加随机字符串,用于加扰唯一字符串,以此抵抗猜测攻击。
Description
技术领域
本发明涉及序列号生成领域,更具体地说,涉及一种不重复随机序列号生成方法及计算机终端。
背景技术
序列号被广泛应用于产品的可追溯、防盗版、产品身份识别等领域。按顺序生的序列号类似于0001,0002,0003……序列号间带有明显规律性,这允许由当前序列号计算出相邻序列号。这类序列号生成算法适用于较普通的应用,如工厂中对产品生产过程的跟踪和追溯。为防止猜测攻击,在条件访问等场合常使用随机字符串的方法生成序列号。随机生成算法虽然能很好抵抗猜测攻击,但每次生成新序列号都要避免与已生成的序列号重复。随着生成的序列号越来越多,重复的概率逐惭增大。同时,完全随机的序列号也更难于管理。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种不重复随机序列号生成方法及计算机终端。
本发明解决其技术问题所采用的技术方案是:构造一种不重复随机序列号生成方法,包括:
S1、选取多个字符组成唯一串字符集合;
S2、根据预设映射算法从所述唯一串字符集合选取字符生成唯一字符串;
S3、生成随机字符串;
S4、由所述唯一字符串和随机字符串组成随机序列号。
优选地,本发明所述的不重复随机序列号生成方法,在所述步骤S4之后还包括:
重复执行所述步骤S2至步骤S4,不断生成所述随机序列号。
优选地,本发明所述的不重复随机序列号生成方法,所述步骤S1包括:
S11、选取多个字符并进行随机排序,组成唯一串字符集合,记录每个字符在所述唯一串字符集合中的排序位置。
优选地,本发明所述的不重复随机序列号生成方法,所述步骤S2中所述预设映射算法包括:
Am-1W1+Am-2W2+Am-3W3+···+A1Wm+Wm=C
其中,m是所述唯一字符串的位数,A为所述预设映射算法采用的目标数制的底,Wi为对应字符在所述唯一串字符集合的排序位置,1≤i≤m,C为计数值。
优选地,本发明所述的不重复随机序列号生成方法,在所述步骤S4之后还包括:
增加所述计数值C的数值,重复执行所述步骤S2至步骤S4,不断生成所述随机序列号。
优选地,本发明所述的不重复随机序列号生成方法,所述步骤S3包括:
S31、生成n位随机字符串,其中n=s-m,n为所述随机字符串的位数,s为所述随机序列号的字符总数;或
S32、一次生成与所述随机序列号的总数对应的所述随机字符串,在后续循环生成所述随机序列号时逐个分配。
优选地,本发明所述的不重复随机序列号生成方法,在步骤S2中,根据所需所述随机序列号的总数K确定m的取值范围:
Am-1≥K。
优选地,本发明所述的不重复随机序列号生成方法,所述步骤S4包括:
S41、将所述随机字符串作为所述唯一字符串的前缀,组成所述随机序列号;或
S42、将所述随机字符串作为所述唯一字符串的后缀,组成所述随机序列号;或
S43、将所述随机字符串插入到所述唯一字符串中的某一中间位置,组成所述随机序列号;或
S44、将所述随机字符串拆分为至少两个部分,并将拆分后的部分分别插入在所述唯一字符串的前缀、中间位置、后缀,组成所述随机序列号。
优选地,本发明所述的不重复随机序列号生成方法,所述步骤S4包括:
S45、由所述唯一字符串和随机字符串组成随机序列号,并在所述随机序列号的至少一个预设位置插入预设分隔符。
另,本发明还提供一种计算机终端,包括存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器中的计算机程序以实现如上述的不重复随机序列号生成方法。
实施本发明的一种不重复随机序列号生成方法及计算机终端,具有以下有益效果:该方法包括:S1、选取多个字符组成唯一串字符集合;S2、根据预设映射算法从唯一串字符集合选取字符生成唯一字符串,预设映射算法包括:Am-1W1+Am-2W2+Am-3W3+···+A1Wm+Wm=C;S3、生成随机字符串;S4、由唯一字符串和随机字符串组成随机序列号。通过实施本发明,引入唯一字符串,因为唯一字符串是不重复的,以此保证生成的序列号不重复;二是增加随机字符串,用于加扰唯一字符串,以此抵抗猜测攻击。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明一种不重复随机序列号生成方法的第一实施例流程图;
图2是本发明一种不重复随机序列号生成方法的第二实施例流程图;
图3是本发明一种计算机终端的结构示意图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
图1是本发明一种不重复随机序列号生成方法的第一实施例流程图。
具体的,本实施例的不重复随机序列号生成方法包括:
S1、选取多个字符组成唯一串字符集合,组成唯一串字符集合后记录每个字符的位置,即第一个字符的位置为1,第二个字符的位置为2,以此类推。可用于选取的字符包括但不限于阿拉伯数字、大写字母、小写字母、希腊字母等,它们应该是构成序列号的合法字符。唯一串字符集合中所有字符都是唯一的,不能重复。
S2、根据预设映射算法从唯一串字符集合选取字符生成唯一字符串,该预设映射算法生成的唯一字符串具有唯一性,后续循环产生的所有唯一字符串都是不同的。作为选择,根据进制转换生成的字符串可通过预设方案重新排列各个字符,得到最终唯一字符串。
S3、生成随机字符串。对于生成方式,可以将唯一串字符集合作为随机字符串字符集,使用常规随机字符生成算法从随机字符串字符集产生随机字符串。或者,选用其他字符作为随机字符串字符集,使用常规随机字符串生成算法产生随机字符串。此处随机字符串的产生算法使用现有技术,本实施例不再赘述。
S4、由唯一字符串和随机字符串组成随机序列号。唯一字符串和随机字符串的组合方式多种多样,本实施例提供四种唯一字符串和随机字符串的组合方式,以对组合原则进行说明,以下为四种组合方式。
第一组合方式:S41、将随机字符串作为唯一字符串的前缀,即随机字符串在前,唯一字符串在后,组成随机序列号。
第二组合方式:S42、将随机字符串作为唯一字符串的后缀,即唯一字符串在前,随机字符串在后,组成随机序列号。
第三组合方式:S43、将随机字符串插入到唯一字符串中的某一中间位置,组成随机序列号,此处的中间位置并不是特指唯一字符串正中间的位置,而是唯一字符串中任意两个字符的中间位置。可以理解,任意两个字符中间的位置包括唯一字符串正中间的位置。
第四组合方式:S44、将随机字符串拆分为至少两个部分,并将拆分后的部分分别插入在唯一字符串的前缀、中间位置、后缀,组成随机序列号,其中,中间位置可选择一个或多个,根据随机字符串拆分所得部分的数量进行选择。
作为选择,本所述的不重复随机序列号生成方法,步骤S4还包括:
S45、由唯一字符串和随机字符串组成随机序列号,并在随机序列号的至少一个预设位置插入预设分隔符。例如,预设分隔符为“-”。通过添加预设分隔符,满足有些应用场景对序列号格式的要求,并在一定程度上增强随机序列号抗猜测攻击的能力。
在步骤S4之后还包括:重复执行步骤S2至步骤S4,不断生成随机序列号。
图2是本发明一种不重复随机序列号生成方法的第二实施例流程图。
具体的,在第一实施例的基础上,本实施例的不重复随机序列号生成方法中,步骤S1包括:
S11、选取多个字符并进行随机排序,组成唯一串字符集合,记录每个字符在唯一串字符集合中的排序位置。通过对选取的字符集合进行随机排序,增强唯一串字符集合的抗猜测攻击能力。记录每个字符在唯一串字符集合中的排序位置即第一个字符的位置为1,第二个字符的位置为2,以此类推。
本实施例中步骤S2中包括:S21、根据预设映射算法从唯一串字符集合选取字符生成唯一字符串,预设映射算法包括:Am-1W1+Am-2W2+Am-3W3+···+A1Wm+Wm=C。
具体的,对于预设映射算法
Am-1W1+Am-2W2+Am-3W3+···+A1Wm+Wm=C
其中,m是唯一字符串的位数,m为正整数。
在步骤S2中,根据所需随机序列号的总数K确定m的取值范围:
Am-1≥K
其中K为正整数。
可以理解,当上述公式中等号成立时,m值为最小可取值。
A为预设映射算法采用的目标数制的底,A为正整数;数制包括但不限于10进制、15进制、20进制、36进制等等,可根据需要生成的唯一字符串的总数以及唯一字符串的长度进行适应性选择,本实施例对此不做限定。优选地,所用目标进制(或称进制的底)与唯一串字符集合的字符数相同,例如,唯一串字符集合内字符数为10,则采用十进制;唯一串字符集合内字符数为36,则采用三十六进制。
Wi为对应字符在唯一串字符集合的排序位置,1≤i≤m。
C为计数值,C的初值的选取需要考虑唯一串字符集合内字符数量可以生成的唯一字符串的总数和需要生成的随机序列号的总数。当Am-1=K时,C的初值只能为0。
进一步,步骤S3包括:S31、生成n位随机字符串,其中n=s-m,n为随机字符串的位数,s为随机序列号的字符总数。
作为选择,在步骤S3包括:S32、一次生成与随机序列号的总数对应的随机字符串,在后续循环生成随机序列号时逐个分配。
进一步,在步骤S4之后还包括:增加计数值C的数值,重复执行步骤S2至步骤S4,不断生成随机序列号,直至生成所有需数量的随机序列号。可以理解,根据预设映射算法,每个不同的计数值C唯一的对应一组唯一字符串,从而保证后续生成的随机序列号不会出现重号现象。作为选择,计数值C的每次增加值可根据需要设置。
现通过以具体实施例对上述不重复随机序列号生成方法进行说明,可以理解,该实施例仅用于说明不重复随机序列号生成方法的工作过程,并不用于限定本发明。
1、假定需要生成数字和大写字母组合的16位序列号200万个,因需生成随机不重复的序列号200万个,采用36进制进行计算,即364=167万,365=6046万,所以需选定唯一字符串的最小长度为Ls=5,剩下的是随机字符串,其长度Lr=11。设计数值C。
2、根据应用,序列号的合法字符集合为Sr={0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ},将Sr随机排序后为{M2E9Q5B6GFZ7J1C3RHATUKX40YLVPIOWNS8D},作为唯一串字符集合Su。
3、根据C的取值映射得到唯一字符串su=e1e2e3e4e5,其中e1、e2、e3、e4、e5都是Su中的元素,并通过以下规则选取:假设各自在Su中的位置分别为w1、w2、w3、w4、w5,它们满足364w1+363w2+362w3+361w4+w5=C。
4、生成长度Lr的随机字符串sr=r1r2r3r4r5r6r7r8r9r10r11。
5、将唯一串与随机串合成为序列号,s=sr+su=r1r2r3r4r5r6r7r8r9r10r11e1e2e3e4e5。
6、增加计数值C,回到第3步继续生成下一个随机序列号。
图3是本发明一种计算机终端的结构示意图。
具体的,该计算机终端包括存储器和处理器;
存储器用于存储计算机程序;
处理器用于执行存储器中的计算机程序以实现如上述的不重复随机序列号生成方法。
优选地,计算机终端包括但不限于电脑、手机、服务器等。
通过实施本发明,引入唯一字符串,因为唯一字符串是不重复的,以此保证生成的序列号不重复;二是增加随机字符串,用于加扰唯一字符串,以此抵抗猜测攻击。
以上实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据此实施,并不能限制本发明的保护范围。凡跟本发明权利要求范围所做的均等变化与修饰,均应属于本发明权利要求的涵盖范围。
Claims (10)
1.一种不重复随机序列号生成方法,其特征在于,包括:
S1、选取多个字符组成唯一串字符集合;
S2、根据预设映射算法从所述唯一串字符集合选取字符生成唯一字符串;
S3、生成随机字符串;
S4、由所述唯一字符串和随机字符串组成随机序列号。
2.根据权利要求1所述的不重复随机序列号生成方法,其特征在于,在所述步骤S4之后还包括:
重复执行所述步骤S2至步骤S4,不断生成所述随机序列号。
3.根据权利要求1所述的不重复随机序列号生成方法,其特征在于,所述步骤S1包括:
S11、选取多个字符并进行随机排序,组成唯一串字符集合,记录每个字符在所述唯一串字符集合中的排序位置。
4.根据权利要求3所述的不重复随机序列号生成方法,其特征在于,所述步骤S2中所述预设映射算法包括:
Am-1W1+Am-2W2+Am-3W3+…+A1Wm+Wm=C
其中,m是所述唯一字符串的位数,A为所述预设映射算法采用的目标数制的底,Wi为对应字符在所述唯一串字符集合的排序位置,1≤i≤m,C为计数值。
5.根据权利要求4所述的不重复随机序列号生成方法,其特征在于,在所述步骤S4之后还包括:
增加所述计数值C的数值,重复执行所述步骤S2至步骤S4,不断生成所述随机序列号。
6.根据权利要求4所述的不重复随机序列号生成方法,其特征在于,所述步骤S3包括:
S31、生成n位随机字符串,其中n=s-m,n为所述随机字符串的位数,s为所述随机序列号的位数;或
S32、一次生成与所述随机序列号的总数对应的所述随机字符串,在后续循环生成所述随机序列号时逐个分配。
7.根据权利要求4所述的不重复随机序列号生成方法,其特征在于,在步骤S2中,根据所需所述随机序列号的总数K确定m的取值范围:
Am-1≥K。
8.根据权利要求1所述的不重复随机序列号生成方法,其特征在于,所述步骤S4包括:
S41、将所述随机字符串作为所述唯一字符串的前缀,组成所述随机序列号;或
S42、将所述随机字符串作为所述唯一字符串的后缀,组成所述随机序列号;或
S43、将所述随机字符串插入到所述唯一字符串中的某一中间位置,组成所述随机序列号;或
S44、将所述随机字符串拆分为至少两个部分,并将拆分后的部分分别插入在所述唯一字符串的前缀、中间位置、后缀,组成所述随机序列号。
9.根据权利要求8所述的不重复随机序列号生成方法,其特征在于,所述步骤S4包括:
S45、由所述唯一字符串和随机字符串组成随机序列号,并在所述随机序列号的至少一个预设位置插入预设分隔符。
10.一种计算机终端,其特征在于,包括存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器中的计算机程序以实现如权利要求1-9任一项所述的不重复随机序列号生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811073754.4A CN109445749A (zh) | 2018-09-14 | 2018-09-14 | 一种不重复随机序列号生成方法及计算机终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811073754.4A CN109445749A (zh) | 2018-09-14 | 2018-09-14 | 一种不重复随机序列号生成方法及计算机终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109445749A true CN109445749A (zh) | 2019-03-08 |
Family
ID=65532718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811073754.4A Pending CN109445749A (zh) | 2018-09-14 | 2018-09-14 | 一种不重复随机序列号生成方法及计算机终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109445749A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109993152A (zh) * | 2019-04-15 | 2019-07-09 | 武汉轻工大学 | 坐标曲线积分的模式转换方法、设备、存储介质及装置 |
CN112035477A (zh) * | 2020-08-31 | 2020-12-04 | 平安医疗健康管理股份有限公司 | 医保文本的序列号转换方法、装置和计算机设备 |
CN116092623A (zh) * | 2023-04-12 | 2023-05-09 | 四川执象网络有限公司 | 一种基于基层医学质控的健康数据管理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101533435A (zh) * | 2009-04-16 | 2009-09-16 | 北京水晶石数字科技有限公司 | 一种序列号生成和验证的方法 |
CN106844288A (zh) * | 2015-12-07 | 2017-06-13 | 阿里巴巴集团控股有限公司 | 一种随机字符串生成方法及装置 |
CN107154899A (zh) * | 2017-03-23 | 2017-09-12 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种用后缀索引查找ip路由的系统 |
CN108073679A (zh) * | 2017-11-10 | 2018-05-25 | 中国科学院信息工程研究所 | 一种串匹配场景下随机模式串集合生成方法、设备和可读存储介质 |
-
2018
- 2018-09-14 CN CN201811073754.4A patent/CN109445749A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101533435A (zh) * | 2009-04-16 | 2009-09-16 | 北京水晶石数字科技有限公司 | 一种序列号生成和验证的方法 |
CN106844288A (zh) * | 2015-12-07 | 2017-06-13 | 阿里巴巴集团控股有限公司 | 一种随机字符串生成方法及装置 |
CN107154899A (zh) * | 2017-03-23 | 2017-09-12 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种用后缀索引查找ip路由的系统 |
CN108073679A (zh) * | 2017-11-10 | 2018-05-25 | 中国科学院信息工程研究所 | 一种串匹配场景下随机模式串集合生成方法、设备和可读存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109993152A (zh) * | 2019-04-15 | 2019-07-09 | 武汉轻工大学 | 坐标曲线积分的模式转换方法、设备、存储介质及装置 |
CN112035477A (zh) * | 2020-08-31 | 2020-12-04 | 平安医疗健康管理股份有限公司 | 医保文本的序列号转换方法、装置和计算机设备 |
CN112035477B (zh) * | 2020-08-31 | 2024-04-09 | 深圳平安医疗健康科技服务有限公司 | 医保文本的序列号转换方法、装置和计算机设备 |
CN116092623A (zh) * | 2023-04-12 | 2023-05-09 | 四川执象网络有限公司 | 一种基于基层医学质控的健康数据管理方法 |
CN116092623B (zh) * | 2023-04-12 | 2023-07-28 | 四川执象网络有限公司 | 一种基于基层医学质控的健康数据管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109445749A (zh) | 一种不重复随机序列号生成方法及计算机终端 | |
Liu et al. | Delay-introducing method to improve the dynamical degradation of a digital chaotic map | |
Kwietniak et al. | A panorama of specification-like properties and their consequences | |
Barak et al. | 2-source dispersers for n o (1) entropy, and Ramsey graphs beating the Frankl-Wilson construction | |
CN113904764A (zh) | 基于多尺度压缩感知和马尔科夫模型的图像加密方法 | |
CN1398467A (zh) | 对称-密钥加密的线性变换 | |
CN103946909A (zh) | 器件固有信息生成装置以及器件固有信息生成方法 | |
Clough | Diatonic interval sets and transformational structures | |
Lin et al. | Asymmetry helps: Improved private information retrieval protocols for distributed storage | |
JP4374059B2 (ja) | キャッシュメモリ及びその制御方法 | |
Bowen et al. | Bounds on classical information capacities for a class of quantum memory channels | |
JP3701969B2 (ja) | 非線形動的換字装置 | |
Verma et al. | 3D-Playfair cipher with additional bitwise operation | |
Obead et al. | Private polynomial computation for noncolluding coded databases | |
Sokolov et al. | Regular synthesis method of a complete class of ternary bent-sequences and their nonlinear properties | |
JP6104469B2 (ja) | 行列生成装置及び行列生成方法及び行列生成プログラム | |
CN105227190B (zh) | 一种基于有限域乘群中循环子群的ldpc码的构造方法 | |
CN105207681B (zh) | 一种基于有限域乘群中循环子群生成元的ldpc码构造方法 | |
Holland | Cycles in logical nets | |
US9280317B2 (en) | Semiconductor memory device and random number generator | |
Hao et al. | On the weight hierarchy of locally repairable codes | |
CN112446038B (zh) | 一种基于矩阵分解的访问策略智能化生成方法 | |
Singh et al. | Developing 3D-Playfair Cipher algorithm using structure rotation | |
Li et al. | Mixed construction of OOC for optical code division multiple access networks | |
Zhang et al. | Two families of LRCs with availability based on iterative matrix |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190308 |
|
RJ01 | Rejection of invention patent application after publication |