CN106844288A - 一种随机字符串生成方法及装置 - Google Patents

一种随机字符串生成方法及装置 Download PDF

Info

Publication number
CN106844288A
CN106844288A CN201510892216.8A CN201510892216A CN106844288A CN 106844288 A CN106844288 A CN 106844288A CN 201510892216 A CN201510892216 A CN 201510892216A CN 106844288 A CN106844288 A CN 106844288A
Authority
CN
China
Prior art keywords
sequence
value
variables
character
basic
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.)
Granted
Application number
CN201510892216.8A
Other languages
English (en)
Other versions
CN106844288B (zh
Inventor
张新宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority to CN201510892216.8A priority Critical patent/CN106844288B/zh
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to KR1020187018758A priority patent/KR102111871B1/ko
Priority to AU2016367801A priority patent/AU2016367801B2/en
Priority to EP16872350.0A priority patent/EP3367254A4/en
Priority to MYPI2018702157A priority patent/MY194056A/en
Priority to PCT/CN2016/108198 priority patent/WO2017097159A1/zh
Priority to JP2018548262A priority patent/JP6636647B2/ja
Priority to SG11201804494PA priority patent/SG11201804494PA/en
Publication of CN106844288A publication Critical patent/CN106844288A/zh
Priority to US16/000,146 priority patent/US10489117B2/en
Priority to PH12018501222A priority patent/PH12018501222A1/en
Priority to AU2019101559A priority patent/AU2019101559A4/en
Application granted granted Critical
Publication of CN106844288B publication Critical patent/CN106844288B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Document Processing Apparatus (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种随机字符串生成方法及装置,该方法包括:获取数据库中的序列号sequence变量的值,其中,所述sequence变量的值为由预定基本数字集合中的基本数字构成的序列,本次获取到的所述sequence变量的值与本次之外的任一次获取到的所述sequence变量的值均不相同;根据设定的字符集合中包含的各字符与所述基本数字集合中包含的各基本数字的一一映射关系,将所述序列映射为字符串,作为生成的随机字符串。通过本申请,由于每次获取到的sequence变量的值均不相同,相应的,每次根据所述一一映射关系映射生成的随机字符串也均不相同,因此,不必再执行多次对比字符串的操作,从而可以提高生成唯一随机字符串的效率。

Description

一种随机字符串生成方法及装置
技术领域
本申请涉及电数字数据处理领域,尤其涉及一种随机字符串生成方法及装置。
背景技术
随机字符串在很多业务中被广泛地使用。例如,广泛使用随机字符串的业务可以是:包含密码术过程的业务、需要对大量业务数据进行标记的业务,等等。
目前,对于业务使用的各随机字符串,为了防止业务数据混淆,一般要求各随机字符串在该业务的范围内具有唯一性,也即,各随机字符串应互不相同。
在现有技术中,一般可以采用随机算法生成随机字符串,并将本次生成的随机字符串与之前生成的各随机字符串进行对比,若重复,则可以将本次生成的随机字符串丢弃,并再次生成随机字符串。如此,可以使得对于生成并保留下来的各随机字符串中的每个随机字符串,该随机字符串在所述各随机字符串中具有唯一性(为了便于描述,可以将该随机字符串称为唯一随机字符串)。
但是,当已生成并保留下来的各随机字符串的数量较多时,在生成随机字符串时,需要执行多次对比字符串的操作,以防止随机字符串重复,因此,这种生成唯一随机字符串的方法效率很低。
发明内容
本申请实施例提供一种随机字符串生成方法及装置,用以解决现有技术中生成唯一随机字符串的方法效率很低的问题。
本申请实施例提供的一种随机字符串生成方法,包括:
获取数据库中的序列号(sequence)变量的值,其中,所述sequence变量的值为由预定基本数字集合中的基本数字构成的序列,本次获取到的所述sequence变量的值与本次之外的任一次获取到的所述sequence变量的值均不相同;
根据设定的字符集合中包含的各字符与所述基本数字集合中包含的各基本数字的一一映射关系,将所述序列映射为字符串,作为生成的随机字符串。
本申请实施例提供的一种随机字符串生成装置,包括:
获取模块,用于获取数据库中的sequence变量的值,其中,所述sequence变量的值为由预定基本数字集合中的基本数字构成的序列,本次获取到的所述sequence变量的值与本次之外的任一次获取到的所述sequence变量的值均不相同;
生成模块,用于根据设定的字符集合中包含的各字符与所述基本数字集合中包含的各基本数字的一一映射关系,将所述序列映射为字符串,作为生成的随机字符串。
本申请实施例通过上述至少一种技术方案,由于每次获取到的sequence变量的值均不相同,相应的,每次根据所述一一映射关系映射生成的随机字符串也均不相同,因此,不必再执行多次对比字符串的操作,从而可以提高生成唯一随机字符串的效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的随机字符串生成方法的过程;
图2为本申请实施例提供的在实际应用场景下,所述随机字符串生成方法的一种实施过程;
图3为本申请实施例提供的可用于实现图2中的过程的一种系统的结构图;
图4为本申请实施例提供的随机字符串生成装置结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在背景技术中已经提到,目前生成唯一随机字符串时,是采用后验方式(先生成随机字符串,再校验该随机字符串是否唯一),确保生成并保留下的随机字符串的唯一性。对于某次生成的随机字符串,若该随机字符串与已保留的任一随机字符串相同,则将该次生成的随机字符串丢弃,在这种情况下,不仅效率很低,而且还浪费了用于生成随机字符串的资源。
为了解决以上问题,在本申请实施例中,可以在生成随机字符串的过程的源头处就采取措施,使得生成的随机字符串是唯一的。这样的话,可以不用在生成随机字符串后再进行校验,不仅效率较高,而且也不会浪费用于生成随机字符串的资源。下面进行具体说明。
图1为本申请实施例提供的随机字符串生成方法的过程,该过程的执行主体可以是终端或服务器。所述终端包括但不限于:个人计算机、手机、平板电脑、智能手表、车载移动台等;所述服务器包括但不限于:个人计算机、大中型计算机、计算机集群等。执行主体并不构成对本申请的限定,为了便于描述,本申请实施例均以执行主体是服务器为例进行说明。
在本申请实施例中,图1中的过程可以是生成一个唯一随机字符串的过程,在实际应用中,可以通过多次执行该过程,获取到多个互不相同的随机字符串。该过程可以是在单点环境下执行的,也可以是在分布式环境下执行的,等等;本申请实施例对该过程的执行环境并不做限定。
该过程具体可以包括以下步骤:
S101:获取数据库中的sequence变量的值,其中,所述sequence变量的值为由预定基本数字集合中的基本数字构成的序列,本次获取到的所述sequence变量的值与本次之外的任一次获取到的所述sequence变量的值均不相同。
在本申请实施例中,sequence变量可以是数据库中的、任一已定义的sequence变量。sequence变量可以是为了实现生成随机字符串的功能专门定义的,也可以是原本为了实现其他功能定义的,本申请实施例对此并不做限定。所述数据库包括但不限于:Oracle、DB2、PostgreSQL等数据库。
sequence变量一般可以作为数据库中的主键(Primary Key)。当采用数据库提供的特定指令获取sequence变量的值时,可以使得每次获取到的该sequence变量的值均不相同。所述特定指令可以是用于让sequence变量按照预设自增步长,自增后再取值的指令,如NextVal指令。
在本申请实施例中,可以基于每次获取的sequence变量的值的唯一性,保证根据该次获取的sequence变量的值,对应生成的随机字符串的唯一性。
由于上述的特定指令是数据库已经实现的功能部分,因此,在实施本申请的方案时,并不需要我们自己开发额外的功能模块,以用于保证在步骤S101中每次获取的sequence变量的值互不相同,从而可以减小本申请的方案的实施成本。
在本申请实施例中,sequence变量是数值型变量。对于数值型变量,其值可以采用10进制进行表示,也可以采用2进制、8进制、16进制等进制进行表示。以一个变量名称为“seq”的sequence变量为例进行说明。
在10进制下,假定seq=123,则基于10进制对应的基本数字集合(包含的基本数字为:10进制数字0~9),可以将seq的值表示为由10进制数字1、2、3构成的序列“123”,也即,10进制数123;而在2进制下,基于2进制对应的基本数字集合(包含的基本数字为:2进制数字0、1),可以将seq的值表示为由2进制数字0、1构成的序列“01111011”,也即,2进制数01111011;类似的,还可以基于8进制、16进制等,对seq的值进行表示,在此不一一赘述。
根据上面的说明,步骤S101中的所述预定基本数字集合可以是一种预定的数字进制对应的基本数字集合,相应的,sequence变量的值可以是该基本数字集合中的基本数字构成的序列。
S102:根据设定的字符集合中包含的各字符与所述基本数字集合中包含的各基本数字的一一映射关系,将所述序列映射为字符串,作为生成的随机字符串。
在本申请实施例中,字符集合中包含的各字符的数量与基本数字集合中包含的各基本数字的数量可以相同,且各字符可以互不相同,各基本数字可以互不相同,这样的话,可以成功地设定各字符与各基本元素之间的一一映射关系。
字符集合和/或一一映射关系可以是在执行步骤S101之前设定的,也可以是在执行步骤S101之后设定的。对于前一种情况,在执行步骤S101时,由于字符集合是先于sequence变量的值确定的,为了保证可以成功设定字符集合与sequence变量的值对应的基本数字集合的一一映射关系,可以根据字符集合中包含的各字符的数量,确定用于表示sequence变量的值的基本数字集合(该基本数字集合中包含的基本数字的数量应与各字符的数量相等);类似地,对于后一种情况,则可以根据步骤S101中用于表示sequence变量的值的基本数字集合包含的各基本数字的数量,设定字符集合。
另外,在实际应用中,序列映射为字符串后,还可以按照预定规则,在该字符串头部、中部或尾部插入其他的字符,再将插入后的该字符串作为生成的随机字符串,在这种情况下,序列映射的字符串可以是生成的随机字符串的一部分。需要说明的是,插入的其他的字符应当不影响生成的随机字符串的唯一性。
在本申请实施例中,除了可以采用设定的字符集合映射所述序列以外,类似地,也可以采用设定的字符串集合映射所述序列,生成随机字符串。在这种情况下,可以将步骤S102替换为以下步骤:根据设定的字符串集合中包含的各字符串与所述基本数字集合中包含的各基本数字的一一映射关系,将所述序列映射为字符串,作为生成的随机字符串。
通过上述方法,由于每次获取到的sequence变量的值均不相同,相应的,每次根据所述一一映射关系映射生成的随机字符串也均不相同,因此,不必再执行多次对比字符串的操作,从而可以提高生成唯一随机字符串的效率,而且也可以节省服务器的资源。不仅如此,由于数据库已经提供了特定指令,用于使每次获取到的sequence变量的值均不相同,因此,本申请的方案的实施成本较小,有利于在更多的适用场景下实施。
为了便于理解,下面对图1中的步骤进一步地进行说明。
在本申请实施例中,不同的业务对生成的随机字符串的复杂程度的需求可能不同。例如,在对于某个业务,生成仅包含有英文字母的随机字符串即可满足需求,而对于另一个业务,需要生成的随机字符串不仅可以包含英文字母,还可以包含数字、标点等其他类型的字符。
因此,可以根据诸如以上的需求,先设定符合需求的字符集合,再执行图1中的各步骤。在这种情况下,可以根据设定的字符集合,确定出可以与该字符集合一一映射的基本数字集合,以用于对步骤S101中的sequence变量的值进行表示。
当然,若对生成的随机字符串的复杂程度的并没有特别需求的话,也可以在获取sequence变量的值后,再根据表示该值的基本数字集合,生成与该基本数字集合可以一一映射的字符集合。
在本申请实施例中,服务器可以只为一个业务生成随机字符串,也可以分别为多个业务生成随机字符串。对于后一种情况,多个业务都有获取唯一随机字符串的需求,由于对这多个业务中的每个业务,一般只在该业务的范围内使用的获取的各随机字符串,因此,服务器可以针对每个业务,分别为该业务生成在该业务的范围内具有唯一性的随机字符串即可,而不一定要保证服务器生成的所有的随机字符串是全局唯一的。
根据对上述的后一种情况的分析,对于步骤S101,获取数据库中的sequence变量的值,具体可以包括:接收随机字符串生成请求;根据所述生成请求的类型,从数据库中的至少一个sequence变量中,确定预定的、与该类型对应的sequence变量;获取所述与该类型对应的sequence变量的值,其中,本次获取到的所述sequence变量的值与本次之外的任一次获取到的所述与该类型对应的sequence变量的值均不相同。
随机字符串生成请求可以来自需要获取随机字符串业务,不同的业务的生成请求的类型可以不同,每种类型的生成请求可以分别对应于一个sequence变量(该对应关系可以是预先设定的,也可以是在接收到生成请求后再设定的),各sequence变量的变量名称互不相同,进而可以通过变量名称对各sequence变量进行区分。
由此可见,服务器可以基于不同的sequence变量,分别为不同的业务生成在对应的业务范围内具有唯一性的随机字符串。这样的话,可以防止各sequence变量与过多数量的业务产生关联,从而便于对各sequence变量进行管控。
当然,在实际应用中,一个sequence变量也可以由多个业务共用,用于为所述多个业务生成随机字符串,从而可以减少数据库的开销。在这种情况下,基于这个sequence变量生成的各随机字符串在所述多个业务的范围内具有唯一性。
进一步的,若服务器分别为多个业务生成随机字符串,则针对不同的业务设置的字符集合也可以不同。进而,服务器在获取某业务对应的sequence变量的值后,可以基于为该业务设定的字符集合,为该业务生成随机字符串。
在本申请实施例中,对于步骤S102,将所述序列映射为字符串,具体可以包括:针对所述序列中的各基本数字,分别将每个基本数字转换为所述字符集合中包含的、与该基本元素映射的字符;按照转换出的各字符在转换后的所述序列中的顺序,将所述各字符进行串接构成字符串。下面沿用上述的sequence变量seq举例进行说明。
例如,seq为序列“123”,假定在设定的字符集合中,与基本数字“1”映射的字符为‘@’,与基本数字“2”映射的字符为‘#’,与基本数字“3”映射的字符为‘$’。这三个字符可以顺序串接为“@#$”,则可以将序列“123”映射为字符串“@#$”。
在本申请实施例中,若先设定了字符集合,再获取sequence变量的值,则可能需要对该值在进制上进行转换,以使得用于表示转换后该值的基本数字集合可以与设定的字符集合一一映射。
具体的,当所述字符集合中包含的字符的数量为N时,所述预定基本数字集合中为N进制对应的基本数字集合,包括的基本数字为:整数0~N-1;其中,N为不小于2的整数。在这种情况下,对于步骤S101,获取数据库中的sequence变量的值,其中,所述sequence变量的值为由预定基本数字集合中的基本数字构成的序列,具体可以包括:获取数据库中的sequence变量的值;当确定获取的所述sequence变量的值不为N进制数时,将所述序列号sequence变量的值转换为N进制数,所述N进制数为由N进制对应的基本数字集合中的基本数字构成的序列。下面举例进行说明。
例如,假定设定的字符集合为{‘r’、‘7’、‘d’、‘m’、‘g’、‘a’、‘x’、‘3’},包含8个字符(也即,N=8),可以设定该字符集合中包含的各字符,与由8进制对应的基本数字集合{‘0’、‘1’、‘2’、‘3’、‘4’、‘5’、‘6’、‘7’}中包含的各基本数字之间的一一映射关系。假定设定的一一映射关系表示为:{(‘r’,‘0’);(‘7’,‘1’);(‘d’,‘2’);(‘m’,‘3’);(‘g’,‘4’);(‘a’,‘5’);(‘x’,‘6’);(‘3’,‘7’)},其中,每个括号中包含一个映射对,每个映射对包含相互映射的、该字符集合中包含的一个字符与该基本数字集合中的一个基本数字。
假定本次获取到的sequence变量的值为10进制数11002,而不是为8进制数,则可以将该10进制数11002转换为8进制数25372,也即,基于8进制对应的基本数字集合可以将sequence变量的值表示为序列“25372”。进而,可以根据该字符集合和所述一一映射关系,将序列“25372”转换为字符串“dam3d”,作为本次生成的随机字符串。
在本申请实施例中,每次执行步骤S101时,都可以采用用于让sequence变量自增后再取值的指令,获取所述sequence变量的值,以使得每次获取的所述sequence变量的值互不相同。前面已经提到,目前在大多数数据库中,用于让sequence变量自增后再取值的指令可以是NextVal指令。需要说明的是,本申请实施例对该指令的名称并不做限定,“NextVal”是该指令的名称的一种示例。
以上是对图1中的各步骤的进一步说明。为了便于理解,下面对在实际应用场景下,对本申请实施例提供的随机字符串生成方法的一种实施过程进行举例说明。
假定数据库中的sequence变量的值默认为10进制数,设定的字符集合中包含的字符数量为N,且该字符集合用数组的形式预先进行创建和保存。如图2所示,该过程可以包括以下步骤:
S201:创建长度为N的数组,假定N不为10,该数组中包含有N个互不相同的字符。
仍沿用上例中的字符集合和一一映射关系,可以用以下指令创建该数组:
char[]digit={‘r’,‘7’,‘d’,‘m’,‘g’,‘a’,‘x’,‘3’}。
S202:采用NextVal指令获取数据库的sequence变量的值,其中,该值为10进制数。
假定获取到的sequence变量的值为10进制数11002。
S203:将获取的sequence变量的值由10进制数转换为N进制数。
假定N=8,则转换后的sequence变量的值为8进制数25372,对应的序列为“25372”。
需要说明的是,若N=10,则步骤S203也可以省略,不必执行。
S204:根据设定的该数组中包含的各字符与N进制对应的基本数字集合中包含的各基本数字的一一映射关系,将转换得到N进制数字对应的序列映射为字符串,作为生成的随机字符串。
将序列“25372”可以映射为字符串“dam3d”,作为生成的随机字符串。
进一步的,本申请实施例还提供了可用于实现图2中的过程的一种系统的结构图,如图3所示。
该系统可以包含外围、服务层、算法层和数据库层。各层的处理逻辑可以在同一个设备(如服务器)上实现,也可以在不同的设备上实现。
图3中的箭头线段可以表示在生成随机字符串的过程的处理逻辑的执行顺序,箭头线段的两端连接的方框内是对该过程中的步骤的描述。主要可以包括以下步骤:
外围设备向服务层发送随机字符串生成请求;
服务层响应于该生成请求,采用NextVal指令从数据库层获取预定的、与该生成请求的类型对应的sequence变量的值,并返回给服务层;
服务层将sequence变量的值传递给算法层;
算法层基于预先设定的字符集合,将sequence变量的值对应的序列映射生成随机字符串,并返回给服务层;
服务层将生成的随机字符串,以及其他相关信息发送给数据库,以便于数据库写入和保存这些数据;
服务层将生成的随机字符串返回给外围;
外围获得生成的随机字符串,至此,该过程结束。
当然,图3是举例说明的可用于实施本申请实施例提供的方法的一种系统的结构图,在实际应用中,还可以有用于实施所述方法的、与该系统结构不同的其他系统,本申请实施例对可用于实施所述方法的系统的结构并不做限定。
在实际应用中,除了数据库的sequence变量以外,类似的,也可以用其他特定变量替换sequence变量,用于实施本申请的方案。例如,所述其他特定变量可以是用于记录系统时间的毫秒数的变量、或专门为生成随机字符串定义及维护的变量,等等。
需要说明的是,若采用其他特定变量实施本申请的方案时,在每次获取sequence变量的值之后,可能要对该sequence变量执行变更操作,以使得下一次获取的该sequence变量的值,与除了所述下一次以外的任一次获取的该sequence变量的值均不相同。对于不同的特定变量,实现所述变更操作所耗费的成本也可能不同,在实际应用中,可以选择使用的特定变量实施本申请的方案。
以上为本申请实施例提供的随机字符串生成方法,基于同样的思路,本申请实施例还提供相应的随机字符串生成装置,如图4所示。
图4为本申请实施例提供的随机字符串生成装置结构示意图,具体包括:
获取模块401,用于获取数据库中的序列号sequence变量的值,其中,所述sequence变量的值为由预定基本数字集合中的基本数字构成的序列,本次获取到的所述sequence变量的值与本次之外的任一次获取到的所述sequence变量的值均不相同;
生成模块402,用于根据设定的字符集合中包含的各字符与所述基本数字集合中包含的各基本数字的一一映射关系,将所述序列映射为字符串,作为生成的随机字符串。
所述获取模块401具体可以用于:接收随机字符串生成请求;根据所述生成请求的类型,从数据库中的至少一个sequence变量中,确定预定的、与该类型对应的sequence变量;获取所述与该类型对应的sequence变量的值,其中,本次获取到的所述sequence变量的值与本次之外的任一次获取到的所述与该类型对应的sequence变量的值均不相同。
当所述字符集合中包含的字符的数量为N时,所述预定基本数字集合为N进制对应的基本数字集合,包括的基本数字为:整数0~N-1;其中,N为不小于2的整数;
所述获取模块401具体可以用于:获取数据库中的sequence变量的值;当确定获取的所述sequence变量的值不为N进制数时,将所述sequence变量的值转换为N进制数,所述N进制数为由N进制对应的基本数字集合中的基本数字构成的序列。
所述生成模块具体可以用于:针对所述序列中的各基本数字,分别将每个基本数字转换为所述字符集合中包含的、与该基本数字映射的字符;按照转换出的各字符在转换后的所述序列中的顺序,将所述各字符进行串接构成字符串。
所述获取模块具体可以用于:采用用于让sequence变量自增后再取值的指令,获取所述sequence变量的值。
在实际应用中,所述指定变量可以为指定数据库的序列sequence变量,也可以为用于记录系统时间的毫秒数的变量等其他特定变量。
具体的上述如图4所示的装置可以位于终端、服务器上。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种随机字符串生成方法,其特征在于,包括:
获取数据库中的序列号sequence变量的值,其中,所述sequence变量的值为由预定基本数字集合中的基本数字构成的序列,本次获取到的所述sequence变量的值与本次之外的任一次获取到的所述sequence变量的值均不相同;
根据设定的字符集合中包含的各字符与所述基本数字集合中包含的各基本数字的一一映射关系,将所述序列映射为字符串,作为生成的随机字符串。
2.如权利要求1所述的方法,其特征在于,获取数据库中的sequence变量的值,具体包括:
接收随机字符串生成请求;
根据所述生成请求的类型,从数据库中的至少一个sequence变量中,确定预定的、与该类型对应的sequence变量;
获取所述与该类型对应的sequence变量的值,其中,本次获取到的所述sequence变量的值与本次之外的任一次获取到的所述与该类型对应的sequence变量的值均不相同。
3.如权利要求1所述的方法,其特征在于,当所述字符集合中包含的字符的数量为N时,所述预定基本数字集合为N进制对应的基本数字集合,包括的基本数字为:整数0~N-1;其中,N为不小于2的整数;
获取数据库中的序列号sequence变量的值,其中,所述sequence变量的值为由预定基本数字集合中的基本数字构成的序列,具体包括:
获取数据库中的sequence变量的值;
当确定获取的所述sequence变量的值不为N进制数时,将所述sequence变量的值转换为N进制数,所述N进制数为由N进制对应的基本数字集合中的基本数字构成的序列。
4.如权利要求1所述的方法,其特征在于,将所述序列映射为字符串,具体包括:
针对所述序列中的各基本数字,分别将每个基本数字转换为所述字符集合中包含的、与该基本数字映射的字符;
按照转换出的各字符在转换后的所述序列中的顺序,将所述各字符进行串接构成字符串。
5.如权利要求1~3任一项所述的方法,其特征在于,获取sequence变量的值,具体包括:
采用用于让sequence变量自增后再取值的指令,获取所述sequence变量的值。
6.一种随机字符串生成装置,其特征在于,包括:
获取模块,用于获取数据库中的序列号sequence变量的值,其中,所述sequence变量的值为由预定基本数字集合中的基本数字构成的序列,本次获取到的所述sequence变量的值与本次之外的任一次获取到的所述sequence变量的值均不相同;
生成模块,用于根据设定的字符集合中包含的各字符与所述基本数字集合中包含的各基本数字的一一映射关系,将所述序列映射为字符串,作为生成的随机字符串。
7.如权利要求6所述的装置,其特征在于,所述获取模块具体用于:接收随机字符串生成请求;根据所述生成请求的类型,从数据库中的至少一个sequence变量中,确定预定的、与该类型对应的sequence变量;获取所述与该类型对应的sequence变量的值,其中,本次获取到的所述sequence变量的值与本次之外的任一次获取到的所述与该类型对应的sequence变量的值均不相同。
8.如权利要求6所述的装置,其特征在于,当所述字符集合中包含的字符的数量为N时,所述预定基本数字集合为N进制对应的基本数字集合,包括的基本数字为:整数0~N-1;其中,N为不小于2的整数;
所述获取模块具体用于:获取数据库中的sequence变量的值;当确定获取的所述sequence变量的值不为N进制数时,将所述sequence变量的值转换为N进制数,所述N进制数为由N进制对应的基本数字集合中的基本数字构成的序列。
9.如权利要求6所述的装置,其特征在于,所述生成模块具体用于:针对所述序列中的各基本数字,分别将每个基本数字转换为所述字符集合中包含的、与该基本数字映射的字符;按照转换出的各字符在转换后的所述序列中的顺序,将所述各字符进行串接构成字符串。
10.如权利要求6~8任一项所述的装置,所述获取模块具体用于:采用用于让sequence变量自增后再取值的指令,获取所述sequence变量的值。
CN201510892216.8A 2015-12-07 2015-12-07 一种随机字符串生成方法及装置 Active CN106844288B (zh)

Priority Applications (11)

Application Number Priority Date Filing Date Title
CN201510892216.8A CN106844288B (zh) 2015-12-07 2015-12-07 一种随机字符串生成方法及装置
SG11201804494PA SG11201804494PA (en) 2015-12-07 2016-12-01 Method and apparatus for generating random character string
EP16872350.0A EP3367254A4 (en) 2015-12-07 2016-12-01 METHOD AND APPARATUS FOR GENERATING A CHAIN OF RANDOM CHARACTERS
MYPI2018702157A MY194056A (en) 2015-12-07 2016-12-01 Method and apparatus for generating random character string
PCT/CN2016/108198 WO2017097159A1 (zh) 2015-12-07 2016-12-01 一种随机字符串生成方法及装置
JP2018548262A JP6636647B2 (ja) 2015-12-07 2016-12-01 ランダム文字列を生成する方法および装置
KR1020187018758A KR102111871B1 (ko) 2015-12-07 2016-12-01 랜덤 문자열을 생성하기 위한 방법 및 장치
AU2016367801A AU2016367801B2 (en) 2015-12-07 2016-12-01 Method and apparatus for generating random character string
US16/000,146 US10489117B2 (en) 2015-12-07 2018-06-05 Method and apparatus for generating random character string
PH12018501222A PH12018501222A1 (en) 2015-12-07 2018-06-07 Method and apparatus for generating random character string
AU2019101559A AU2019101559A4 (en) 2015-12-07 2019-12-12 Method and apparatus for generating random character string

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510892216.8A CN106844288B (zh) 2015-12-07 2015-12-07 一种随机字符串生成方法及装置

Publications (2)

Publication Number Publication Date
CN106844288A true CN106844288A (zh) 2017-06-13
CN106844288B CN106844288B (zh) 2022-03-22

Family

ID=59013677

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510892216.8A Active CN106844288B (zh) 2015-12-07 2015-12-07 一种随机字符串生成方法及装置

Country Status (10)

Country Link
US (1) US10489117B2 (zh)
EP (1) EP3367254A4 (zh)
JP (1) JP6636647B2 (zh)
KR (1) KR102111871B1 (zh)
CN (1) CN106844288B (zh)
AU (2) AU2016367801B2 (zh)
MY (1) MY194056A (zh)
PH (1) PH12018501222A1 (zh)
SG (1) SG11201804494PA (zh)
WO (1) WO2017097159A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109087368A (zh) * 2018-06-14 2018-12-25 阿里巴巴集团控股有限公司 一种字符串图形化方法和装置
CN109445749A (zh) * 2018-09-14 2019-03-08 高斯贝尔数码科技股份有限公司 一种不重复随机序列号生成方法及计算机终端
CN110262289A (zh) * 2019-07-18 2019-09-20 潍柴动力股份有限公司 A2l文件中变量的处理方法、装置和存储介质
CN112835555A (zh) * 2021-01-22 2021-05-25 广东智源机器人科技有限公司 随机数生成方法、装置和设备
CN114995799A (zh) * 2022-07-18 2022-09-02 新华三半导体技术有限公司 一种汇编代码生成方法、装置及电子设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113744013B (zh) * 2020-09-28 2024-05-21 北京沃东天骏信息技术有限公司 订单号的生成方法、装置、服务器及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101533435A (zh) * 2009-04-16 2009-09-16 北京水晶石数字科技有限公司 一种序列号生成和验证的方法
US20090328146A1 (en) * 2007-05-15 2009-12-31 Lg Electronics Inc. Method of generating authentication code in digital device
CN101976241A (zh) * 2010-09-26 2011-02-16 用友软件股份有限公司 识别码生成方法和系统
CN102129478A (zh) * 2011-04-26 2011-07-20 广州从兴电子开发有限公司 数据库同步方法及系统
CN102609477A (zh) * 2012-01-19 2012-07-25 北京神州数码思特奇信息技术股份有限公司 一种流水号生成器的实现方法
CN103020268A (zh) * 2012-12-26 2013-04-03 大唐软件技术股份有限公司 关系型数据库序列号应用方法和系统
CN104363584A (zh) * 2014-11-27 2015-02-18 宇龙计算机通信科技(深圳)有限公司 一种短消息加、解密的方法、装置及终端

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805911A (en) * 1995-02-01 1998-09-08 Microsoft Corporation Word prediction system
CA2327078C (en) 2000-11-30 2005-01-11 Ibm Canada Limited-Ibm Canada Limitee Secure session management and authentication for web sites
US20040015702A1 (en) 2002-03-01 2004-01-22 Dwayne Mercredi User login delegation
JP4308676B2 (ja) 2003-01-24 2009-08-05 株式会社リコー 文字列処理装置,文字列処理方法および画像形成装置
US7218252B2 (en) 2004-02-25 2007-05-15 Computer Associates Think, Inc. System and method for character conversion between character sets
US7676797B2 (en) 2005-01-31 2010-03-09 Computer Associates Think, Inc. System and method for managing long names in an application programming interface
US7840399B2 (en) 2005-04-07 2010-11-23 Nokia Corporation Method, device, and computer program product for multi-lingual speech recognition
KR100755533B1 (ko) 2005-07-25 2007-09-06 주식회사 팬택 캐릭터 셋 생성 방법 및 그 장치
CN101441637A (zh) 2007-11-22 2009-05-27 国际商业机器公司 对已排序的字符串序列再排序的方法及装置
US9098560B2 (en) 2009-12-22 2015-08-04 International Business Machines Corporation Client message distribution in a distributed directory based on language and character sets
CN102236581B (zh) 2010-04-30 2013-08-14 国际商业机器公司 用于数据中心的映射化简方法和系统
US9665864B2 (en) 2010-05-21 2017-05-30 Intel Corporation Method and device for conducting trusted remote payment transactions
WO2012123986A1 (ja) * 2011-03-14 2012-09-20 三菱電機株式会社 文字列配置装置
US9454753B2 (en) 2011-03-28 2016-09-27 Paypal, Inc. Friendly funding source
US20130159173A1 (en) 2011-12-19 2013-06-20 Sridhar Sivaraman Shared Mobile Payments
US9819727B2 (en) 2013-02-28 2017-11-14 Amazon Technologies, Inc. Computing infrastructure for configurable-quality random data
CA2903175C (en) 2013-02-28 2019-02-19 Amazon Technologies, Inc. Configurable-quality random data service
US9048854B2 (en) 2013-03-12 2015-06-02 Bmc Software Inc. Unicode character conversion using one of two conversion services

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090328146A1 (en) * 2007-05-15 2009-12-31 Lg Electronics Inc. Method of generating authentication code in digital device
CN101533435A (zh) * 2009-04-16 2009-09-16 北京水晶石数字科技有限公司 一种序列号生成和验证的方法
CN101976241A (zh) * 2010-09-26 2011-02-16 用友软件股份有限公司 识别码生成方法和系统
CN102129478A (zh) * 2011-04-26 2011-07-20 广州从兴电子开发有限公司 数据库同步方法及系统
CN102609477A (zh) * 2012-01-19 2012-07-25 北京神州数码思特奇信息技术股份有限公司 一种流水号生成器的实现方法
CN103020268A (zh) * 2012-12-26 2013-04-03 大唐软件技术股份有限公司 关系型数据库序列号应用方法和系统
CN104363584A (zh) * 2014-11-27 2015-02-18 宇龙计算机通信科技(深圳)有限公司 一种短消息加、解密的方法、装置及终端

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ZHOU YUPING等: "Research and realization of multi-level encryption method for database", 《2010 2ND INTERNATIONAL CONFERENCE ON ADVANCED COMPUTER CONTROL》 *
未知作者: "How to Find Next and Previous Records in SQL", 《网络公开(WWW.XAPRB.COM/BLOG/2006/04/28/HOW-TO-FIND-NEXT-AND-PREVIOUS-RECORDS-IN-SQL/)》 *
雷军程等: "数据库主键生成策略研究", 《计算机时代》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109087368A (zh) * 2018-06-14 2018-12-25 阿里巴巴集团控股有限公司 一种字符串图形化方法和装置
CN109445749A (zh) * 2018-09-14 2019-03-08 高斯贝尔数码科技股份有限公司 一种不重复随机序列号生成方法及计算机终端
CN110262289A (zh) * 2019-07-18 2019-09-20 潍柴动力股份有限公司 A2l文件中变量的处理方法、装置和存储介质
CN110262289B (zh) * 2019-07-18 2022-04-26 潍柴动力股份有限公司 A2l文件中变量的处理方法、装置和存储介质
CN112835555A (zh) * 2021-01-22 2021-05-25 广东智源机器人科技有限公司 随机数生成方法、装置和设备
CN114995799A (zh) * 2022-07-18 2022-09-02 新华三半导体技术有限公司 一种汇编代码生成方法、装置及电子设备
CN114995799B (zh) * 2022-07-18 2022-10-25 新华三半导体技术有限公司 一种汇编代码生成方法、装置及电子设备

Also Published As

Publication number Publication date
US10489117B2 (en) 2019-11-26
KR102111871B1 (ko) 2020-05-18
US20180285078A1 (en) 2018-10-04
PH12018501222A1 (en) 2019-02-04
AU2019101559A4 (en) 2020-01-23
JP2019504426A (ja) 2019-02-14
AU2016367801A1 (en) 2018-06-21
MY194056A (en) 2022-11-10
CN106844288B (zh) 2022-03-22
EP3367254A1 (en) 2018-08-29
EP3367254A4 (en) 2019-06-05
JP6636647B2 (ja) 2020-01-29
WO2017097159A1 (zh) 2017-06-15
KR20180088895A (ko) 2018-08-07
AU2016367801B2 (en) 2019-10-31
SG11201804494PA (en) 2018-06-28

Similar Documents

Publication Publication Date Title
CN110457319B (zh) 区块链状态数据存储方法及装置、电子设备
CN106844288A (zh) 一种随机字符串生成方法及装置
CN110471795B (zh) 区块链状态数据恢复方法及装置、电子设备
EP3955191A1 (en) Method and apparatus for verifying commodities in batches based on blockchain, and electronic device
CN103077183B (zh) 一种分布式顺序表的数据导入方法及其系统
CN106649788A (zh) 一种数据库数据传输方法与装置
CN106611037A (zh) 用于分布式图计算的方法与设备
CN106708996A (zh) 用于对关系数据库进行全文搜索的方法及系统
EP3640813B1 (en) Cluster-based random walk method and apparatus
CN103714086A (zh) 用于生成非关系数据库的模式的方法和设备
CN110019111A (zh) 数据处理方法、装置、存储介质以及处理器
CN103069396A (zh) 对象布置设备及其方法,计算机程序
CN104408183B (zh) 数据系统的数据导入方法和装置
CN111158650B (zh) 报表模板、报表的生成方法、装置
CN111475511A (zh) 基于树状结构的数据存储方法、访问方法、装置及设备
CN106294423A (zh) 数据库分表的写入方法及装置
CN108228606A (zh) 数据的写入方法及装置
CN105138527A (zh) 一种数据分类回归方法及装置
CN117473949A (zh) 表单动态布局方法及系统
CN111159192B (zh) 基于大数据的数据入库方法、装置、存储介质和处理器
CN107391533A (zh) 生成图形数据库查询结果的方法及装置
CN116842012A (zh) 一种Redis集群的分片存储方法、装置、设备及存储介质
CN109582476A (zh) 数据处理方法、装置及系统
CN105808591A (zh) 一种流量展示方法及装置
CN107153651A (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
TA01 Transfer of patent application right

Effective date of registration: 20200927

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200927

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant