本申請涉及電數(shù)字數(shù)據(jù)處理領(lǐng)域,尤其涉及一種隨機字符串生成方法及裝置。
背景技術(shù):
隨機字符串在很多業(yè)務(wù)中被廣泛地使用。例如,廣泛使用隨機字符串的業(yè)務(wù)可以是:包含密碼術(shù)過程的業(yè)務(wù)、需要對大量業(yè)務(wù)數(shù)據(jù)進行標記的業(yè)務(wù),等等。
目前,對于業(yè)務(wù)使用的各隨機字符串,為了防止業(yè)務(wù)數(shù)據(jù)混淆,一般要求各隨機字符串在該業(yè)務(wù)的范圍內(nèi)具有唯一性,也即,各隨機字符串應(yīng)互不相同。
在現(xiàn)有技術(shù)中,一般可以采用隨機算法生成隨機字符串,并將本次生成的隨機字符串與之前生成的各隨機字符串進行對比,若重復(fù),則可以將本次生成的隨機字符串丟棄,并再次生成隨機字符串。如此,可以使得對于生成并保留下來的各隨機字符串中的每個隨機字符串,該隨機字符串在所述各隨機字符串中具有唯一性(為了便于描述,可以將該隨機字符串稱為唯一隨機字符串)。
但是,當已生成并保留下來的各隨機字符串的數(shù)量較多時,在生成隨機字符串時,需要執(zhí)行多次對比字符串的操作,以防止隨機字符串重復(fù),因此,這種生成唯一隨機字符串的方法效率很低。
技術(shù)實現(xiàn)要素:
本申請實施例提供一種隨機字符串生成方法及裝置,用以解決現(xiàn)有技術(shù)中生成唯一隨機字符串的方法效率很低的問題。
本申請實施例提供的一種隨機字符串生成方法,包括:
獲取數(shù)據(jù)庫中的序列號(sequence)變量的值,其中,所述sequence變量的值為由預(yù)定基本數(shù)字集合中的基本數(shù)字構(gòu)成的序列,本次獲取到的所述sequence變量的值與本次之外的任一次獲取到的所述sequence變量的值均不相同;
根據(jù)設(shè)定的字符集合中包含的各字符與所述基本數(shù)字集合中包含的各基本數(shù)字的一一映射關(guān)系,將所述序列映射為字符串,作為生成的隨機字符串。
本申請實施例提供的一種隨機字符串生成裝置,包括:
獲取模塊,用于獲取數(shù)據(jù)庫中的sequence變量的值,其中,所述sequence變量的值為由預(yù)定基本數(shù)字集合中的基本數(shù)字構(gòu)成的序列,本次獲取到的所述sequence變量的值與本次之外的任一次獲取到的所述sequence變量的值均不相同;
生成模塊,用于根據(jù)設(shè)定的字符集合中包含的各字符與所述基本數(shù)字集合中包含的各基本數(shù)字的一一映射關(guān)系,將所述序列映射為字符串,作為生成的隨機字符串。
本申請實施例通過上述至少一種技術(shù)方案,由于每次獲取到的sequence變量的值均不相同,相應(yīng)的,每次根據(jù)所述一一映射關(guān)系映射生成的隨機字符串也均不相同,因此,不必再執(zhí)行多次對比字符串的操作,從而可以提高生成唯一隨機字符串的效率。
附圖說明
此處所說明的附圖用來提供對本申請的進一步理解,構(gòu)成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當限定。在附圖中:
圖1為本申請實施例提供的隨機字符串生成方法的過程;
圖2為本申請實施例提供的在實際應(yīng)用場景下,所述隨機字符串生成方法的一種實施過程;
圖3為本申請實施例提供的可用于實現(xiàn)圖2中的過程的一種系統(tǒng)的結(jié)構(gòu)圖;
圖4為本申請實施例提供的隨機字符串生成裝置結(jié)構(gòu)示意圖。
具體實施方式
為使本申請的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本申請具體實施例及相應(yīng)的附圖對本申請技術(shù)方案進行清楚、完整地描述。顯然,所描述的實施例僅是本申請一部分實施例,而不是全部的實施例。基于本申請中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。
在背景技術(shù)中已經(jīng)提到,目前生成唯一隨機字符串時,是采用后驗方式(先生成隨機字符串,再校驗該隨機字符串是否唯一),確保生成并保留下的隨機字符串的唯一性。對于某次生成的隨機字符串,若該隨機字符串與已保留的任一隨機字符串相同,則將該次生成的隨機字符串丟棄,在這種情況下,不僅效率很低,而且還浪費了用于生成隨機字符串的資源。
為了解決以上問題,在本申請實施例中,可以在生成隨機字符串的過程的源頭處就采取措施,使得生成的隨機字符串是唯一的。這樣的話,可以不用在生成隨機字符串后再進行校驗,不僅效率較高,而且也不會浪費用于生成隨機字符串的資源。下面進行具體說明。
圖1為本申請實施例提供的隨機字符串生成方法的過程,該過程的執(zhí)行主體可以是終端或服務(wù)器。所述終端包括但不限于:個人計算機、手機、平板電腦、智能手表、車載移動臺等;所述服務(wù)器包括但不限于:個人計算機、大中型計算機、計算機集群等。執(zhí)行主體并不構(gòu)成對本申請的限定,為了便于描述,本申請實施例均以執(zhí)行主體是服務(wù)器為例進行說明。
在本申請實施例中,圖1中的過程可以是生成一個唯一隨機字符串的過程,在實際應(yīng)用中,可以通過多次執(zhí)行該過程,獲取到多個互不相同的隨機字 符串。該過程可以是在單點環(huán)境下執(zhí)行的,也可以是在分布式環(huán)境下執(zhí)行的,等等;本申請實施例對該過程的執(zhí)行環(huán)境并不做限定。
該過程具體可以包括以下步驟:
S101:獲取數(shù)據(jù)庫中的sequence變量的值,其中,所述sequence變量的值為由預(yù)定基本數(shù)字集合中的基本數(shù)字構(gòu)成的序列,本次獲取到的所述sequence變量的值與本次之外的任一次獲取到的所述sequence變量的值均不相同。
在本申請實施例中,sequence變量可以是數(shù)據(jù)庫中的、任一已定義的sequence變量。sequence變量可以是為了實現(xiàn)生成隨機字符串的功能專門定義的,也可以是原本為了實現(xiàn)其他功能定義的,本申請實施例對此并不做限定。所述數(shù)據(jù)庫包括但不限于:Oracle、DB2、PostgreSQL等數(shù)據(jù)庫。
sequence變量一般可以作為數(shù)據(jù)庫中的主鍵(Primary Key)。當采用數(shù)據(jù)庫提供的特定指令獲取sequence變量的值時,可以使得每次獲取到的該sequence變量的值均不相同。所述特定指令可以是用于讓sequence變量按照預(yù)設(shè)自增步長,自增后再取值的指令,如NextVal指令。
在本申請實施例中,可以基于每次獲取的sequence變量的值的唯一性,保證根據(jù)該次獲取的sequence變量的值,對應(yīng)生成的隨機字符串的唯一性。
由于上述的特定指令是數(shù)據(jù)庫已經(jīng)實現(xiàn)的功能部分,因此,在實施本申請的方案時,并不需要我們自己開發(fā)額外的功能模塊,以用于保證在步驟S101中每次獲取的sequence變量的值互不相同,從而可以減小本申請的方案的實施成本。
在本申請實施例中,sequence變量是數(shù)值型變量。對于數(shù)值型變量,其值可以采用10進制進行表示,也可以采用2進制、8進制、16進制等進制進行表示。以一個變量名稱為“seq”的sequence變量為例進行說明。
在10進制下,假定seq=123,則基于10進制對應(yīng)的基本數(shù)字集合(包含的基本數(shù)字為:10進制數(shù)字0~9),可以將seq的值表示為由10進制數(shù)字1、2、 3構(gòu)成的序列“123”,也即,10進制數(shù)123;而在2進制下,基于2進制對應(yīng)的基本數(shù)字集合(包含的基本數(shù)字為:2進制數(shù)字0、1),可以將seq的值表示為由2進制數(shù)字0、1構(gòu)成的序列“01111011”,也即,2進制數(shù)01111011;類似的,還可以基于8進制、16進制等,對seq的值進行表示,在此不一一贅述。
根據(jù)上面的說明,步驟S101中的所述預(yù)定基本數(shù)字集合可以是一種預(yù)定的數(shù)字進制對應(yīng)的基本數(shù)字集合,相應(yīng)的,sequence變量的值可以是該基本數(shù)字集合中的基本數(shù)字構(gòu)成的序列。
S102:根據(jù)設(shè)定的字符集合中包含的各字符與所述基本數(shù)字集合中包含的各基本數(shù)字的一一映射關(guān)系,將所述序列映射為字符串,作為生成的隨機字符串。
在本申請實施例中,字符集合中包含的各字符的數(shù)量與基本數(shù)字集合中包含的各基本數(shù)字的數(shù)量可以相同,且各字符可以互不相同,各基本數(shù)字可以互不相同,這樣的話,可以成功地設(shè)定各字符與各基本元素之間的一一映射關(guān)系。
字符集合和/或一一映射關(guān)系可以是在執(zhí)行步驟S101之前設(shè)定的,也可以是在執(zhí)行步驟S101之后設(shè)定的。對于前一種情況,在執(zhí)行步驟S101時,由于字符集合是先于sequence變量的值確定的,為了保證可以成功設(shè)定字符集合與sequence變量的值對應(yīng)的基本數(shù)字集合的一一映射關(guān)系,可以根據(jù)字符集合中包含的各字符的數(shù)量,確定用于表示sequence變量的值的基本數(shù)字集合(該基本數(shù)字集合中包含的基本數(shù)字的數(shù)量應(yīng)與各字符的數(shù)量相等);類似地,對于后一種情況,則可以根據(jù)步驟S101中用于表示sequence變量的值的基本數(shù)字集合包含的各基本數(shù)字的數(shù)量,設(shè)定字符集合。
另外,在實際應(yīng)用中,序列映射為字符串后,還可以按照預(yù)定規(guī)則,在該字符串頭部、中部或尾部插入其他的字符,再將插入后的該字符串作為生成的隨機字符串,在這種情況下,序列映射的字符串可以是生成的隨機字符串的一部分。需要說明的是,插入的其他的字符應(yīng)當不影響生成的隨機字符串的唯一 性。
在本申請實施例中,除了可以采用設(shè)定的字符集合映射所述序列以外,類似地,也可以采用設(shè)定的字符串集合映射所述序列,生成隨機字符串。在這種情況下,可以將步驟S102替換為以下步驟:根據(jù)設(shè)定的字符串集合中包含的各字符串與所述基本數(shù)字集合中包含的各基本數(shù)字的一一映射關(guān)系,將所述序列映射為字符串,作為生成的隨機字符串。
通過上述方法,由于每次獲取到的sequence變量的值均不相同,相應(yīng)的,每次根據(jù)所述一一映射關(guān)系映射生成的隨機字符串也均不相同,因此,不必再執(zhí)行多次對比字符串的操作,從而可以提高生成唯一隨機字符串的效率,而且也可以節(jié)省服務(wù)器的資源。不僅如此,由于數(shù)據(jù)庫已經(jīng)提供了特定指令,用于使每次獲取到的sequence變量的值均不相同,因此,本申請的方案的實施成本較小,有利于在更多的適用場景下實施。
為了便于理解,下面對圖1中的步驟進一步地進行說明。
在本申請實施例中,不同的業(yè)務(wù)對生成的隨機字符串的復(fù)雜程度的需求可能不同。例如,在對于某個業(yè)務(wù),生成僅包含有英文字母的隨機字符串即可滿足需求,而對于另一個業(yè)務(wù),需要生成的隨機字符串不僅可以包含英文字母,還可以包含數(shù)字、標點等其他類型的字符。
因此,可以根據(jù)諸如以上的需求,先設(shè)定符合需求的字符集合,再執(zhí)行圖1中的各步驟。在這種情況下,可以根據(jù)設(shè)定的字符集合,確定出可以與該字符集合一一映射的基本數(shù)字集合,以用于對步驟S101中的sequence變量的值進行表示。
當然,若對生成的隨機字符串的復(fù)雜程度的并沒有特別需求的話,也可以在獲取sequence變量的值后,再根據(jù)表示該值的基本數(shù)字集合,生成與該基本數(shù)字集合可以一一映射的字符集合。
在本申請實施例中,服務(wù)器可以只為一個業(yè)務(wù)生成隨機字符串,也可以分別為多個業(yè)務(wù)生成隨機字符串。對于后一種情況,多個業(yè)務(wù)都有獲取唯一隨機 字符串的需求,由于對這多個業(yè)務(wù)中的每個業(yè)務(wù),一般只在該業(yè)務(wù)的范圍內(nèi)使用的獲取的各隨機字符串,因此,服務(wù)器可以針對每個業(yè)務(wù),分別為該業(yè)務(wù)生成在該業(yè)務(wù)的范圍內(nèi)具有唯一性的隨機字符串即可,而不一定要保證服務(wù)器生成的所有的隨機字符串是全局唯一的。
根據(jù)對上述的后一種情況的分析,對于步驟S101,獲取數(shù)據(jù)庫中的sequence變量的值,具體可以包括:接收隨機字符串生成請求;根據(jù)所述生成請求的類型,從數(shù)據(jù)庫中的至少一個sequence變量中,確定預(yù)定的、與該類型對應(yīng)的sequence變量;獲取所述與該類型對應(yīng)的sequence變量的值,其中,本次獲取到的所述sequence變量的值與本次之外的任一次獲取到的所述與該類型對應(yīng)的sequence變量的值均不相同。
隨機字符串生成請求可以來自需要獲取隨機字符串業(yè)務(wù),不同的業(yè)務(wù)的生成請求的類型可以不同,每種類型的生成請求可以分別對應(yīng)于一個sequence變量(該對應(yīng)關(guān)系可以是預(yù)先設(shè)定的,也可以是在接收到生成請求后再設(shè)定的),各sequence變量的變量名稱互不相同,進而可以通過變量名稱對各sequence變量進行區(qū)分。
由此可見,服務(wù)器可以基于不同的sequence變量,分別為不同的業(yè)務(wù)生成在對應(yīng)的業(yè)務(wù)范圍內(nèi)具有唯一性的隨機字符串。這樣的話,可以防止各sequence變量與過多數(shù)量的業(yè)務(wù)產(chǎn)生關(guān)聯(lián),從而便于對各sequence變量進行管控。
當然,在實際應(yīng)用中,一個sequence變量也可以由多個業(yè)務(wù)共用,用于為所述多個業(yè)務(wù)生成隨機字符串,從而可以減少數(shù)據(jù)庫的開銷。在這種情況下,基于這個sequence變量生成的各隨機字符串在所述多個業(yè)務(wù)的范圍內(nèi)具有唯一性。
進一步的,若服務(wù)器分別為多個業(yè)務(wù)生成隨機字符串,則針對不同的業(yè)務(wù)設(shè)置的字符集合也可以不同。進而,服務(wù)器在獲取某業(yè)務(wù)對應(yīng)的sequence變量的值后,可以基于為該業(yè)務(wù)設(shè)定的字符集合,為該業(yè)務(wù)生成隨機字符串。
在本申請實施例中,對于步驟S102,將所述序列映射為字符串,具體可以包括:針對所述序列中的各基本數(shù)字,分別將每個基本數(shù)字轉(zhuǎn)換為所述字符集合中包含的、與該基本元素映射的字符;按照轉(zhuǎn)換出的各字符在轉(zhuǎn)換后的所述序列中的順序,將所述各字符進行串接構(gòu)成字符串。下面沿用上述的sequence變量seq舉例進行說明。
例如,seq為序列“123”,假定在設(shè)定的字符集合中,與基本數(shù)字“1”映射的字符為‘@’,與基本數(shù)字“2”映射的字符為‘#’,與基本數(shù)字“3”映射的字符為‘$’。這三個字符可以順序串接為“@#$”,則可以將序列“123”映射為字符串“@#$”。
在本申請實施例中,若先設(shè)定了字符集合,再獲取sequence變量的值,則可能需要對該值在進制上進行轉(zhuǎn)換,以使得用于表示轉(zhuǎn)換后該值的基本數(shù)字集合可以與設(shè)定的字符集合一一映射。
具體的,當所述字符集合中包含的字符的數(shù)量為N時,所述預(yù)定基本數(shù)字集合中為N進制對應(yīng)的基本數(shù)字集合,包括的基本數(shù)字為:整數(shù)0~N-1;其中,N為不小于2的整數(shù)。在這種情況下,對于步驟S101,獲取數(shù)據(jù)庫中的sequence變量的值,其中,所述sequence變量的值為由預(yù)定基本數(shù)字集合中的基本數(shù)字構(gòu)成的序列,具體可以包括:獲取數(shù)據(jù)庫中的sequence變量的值;當確定獲取的所述sequence變量的值不為N進制數(shù)時,將所述序列號sequence變量的值轉(zhuǎn)換為N進制數(shù),所述N進制數(shù)為由N進制對應(yīng)的基本數(shù)字集合中的基本數(shù)字構(gòu)成的序列。下面舉例進行說明。
例如,假定設(shè)定的字符集合為{‘r’、‘7’、‘d’、‘m’、‘g’、‘a(chǎn)’、‘x’、‘3’},包含8個字符(也即,N=8),可以設(shè)定該字符集合中包含的各字符,與由8進制對應(yīng)的基本數(shù)字集合{‘0’、‘1’、‘2’、‘3’、‘4’、‘5’、‘6’、‘7’}中包含的各基本數(shù)字之間的一一映射關(guān)系。假定設(shè)定的一一映射關(guān)系表示為:{(‘r’,‘0’);(‘7’,‘1’);(‘d’,‘2’);(‘m’,‘3’);(‘g’,‘4’);(‘a(chǎn)’,‘5’);(‘x’,‘6’);(‘3’,‘7’)},其中,每個括號中包含一個映射對,每 個映射對包含相互映射的、該字符集合中包含的一個字符與該基本數(shù)字集合中的一個基本數(shù)字。
假定本次獲取到的sequence變量的值為10進制數(shù)11002,而不是為8進制數(shù),則可以將該10進制數(shù)11002轉(zhuǎn)換為8進制數(shù)25372,也即,基于8進制對應(yīng)的基本數(shù)字集合可以將sequence變量的值表示為序列“25372”。進而,可以根據(jù)該字符集合和所述一一映射關(guān)系,將序列“25372”轉(zhuǎn)換為字符串“dam3d”,作為本次生成的隨機字符串。
在本申請實施例中,每次執(zhí)行步驟S101時,都可以采用用于讓sequence變量自增后再取值的指令,獲取所述sequence變量的值,以使得每次獲取的所述sequence變量的值互不相同。前面已經(jīng)提到,目前在大多數(shù)數(shù)據(jù)庫中,用于讓sequence變量自增后再取值的指令可以是NextVal指令。需要說明的是,本申請實施例對該指令的名稱并不做限定,“NextVal”是該指令的名稱的一種示例。
以上是對圖1中的各步驟的進一步說明。為了便于理解,下面對在實際應(yīng)用場景下,對本申請實施例提供的隨機字符串生成方法的一種實施過程進行舉例說明。
假定數(shù)據(jù)庫中的sequence變量的值默認為10進制數(shù),設(shè)定的字符集合中包含的字符數(shù)量為N,且該字符集合用數(shù)組的形式預(yù)先進行創(chuàng)建和保存。如圖2所示,該過程可以包括以下步驟:
S201:創(chuàng)建長度為N的數(shù)組,假定N不為10,該數(shù)組中包含有N個互不相同的字符。
仍沿用上例中的字符集合和一一映射關(guān)系,可以用以下指令創(chuàng)建該數(shù)組:
char[]digit={‘r’,‘7’,‘d’,‘m’,‘g’,‘a(chǎn)’,‘x’,‘3’}。
S202:采用NextVal指令獲取數(shù)據(jù)庫的sequence變量的值,其中,該值為10進制數(shù)。
假定獲取到的sequence變量的值為10進制數(shù)11002。
S203:將獲取的sequence變量的值由10進制數(shù)轉(zhuǎn)換為N進制數(shù)。
假定N=8,則轉(zhuǎn)換后的sequence變量的值為8進制數(shù)25372,對應(yīng)的序列為“25372”。
需要說明的是,若N=10,則步驟S203也可以省略,不必執(zhí)行。
S204:根據(jù)設(shè)定的該數(shù)組中包含的各字符與N進制對應(yīng)的基本數(shù)字集合中包含的各基本數(shù)字的一一映射關(guān)系,將轉(zhuǎn)換得到N進制數(shù)字對應(yīng)的序列映射為字符串,作為生成的隨機字符串。
將序列“25372”可以映射為字符串“dam3d”,作為生成的隨機字符串。
進一步的,本申請實施例還提供了可用于實現(xiàn)圖2中的過程的一種系統(tǒng)的結(jié)構(gòu)圖,如圖3所示。
該系統(tǒng)可以包含外圍、服務(wù)層、算法層和數(shù)據(jù)庫層。各層的處理邏輯可以在同一個設(shè)備(如服務(wù)器)上實現(xiàn),也可以在不同的設(shè)備上實現(xiàn)。
圖3中的箭頭線段可以表示在生成隨機字符串的過程的處理邏輯的執(zhí)行順序,箭頭線段的兩端連接的方框內(nèi)是對該過程中的步驟的描述。主要可以包括以下步驟:
外圍設(shè)備向服務(wù)層發(fā)送隨機字符串生成請求;
服務(wù)層響應(yīng)于該生成請求,采用NextVal指令從數(shù)據(jù)庫層獲取預(yù)定的、與該生成請求的類型對應(yīng)的sequence變量的值,并返回給服務(wù)層;
服務(wù)層將sequence變量的值傳遞給算法層;
算法層基于預(yù)先設(shè)定的字符集合,將sequence變量的值對應(yīng)的序列映射生成隨機字符串,并返回給服務(wù)層;
服務(wù)層將生成的隨機字符串,以及其他相關(guān)信息發(fā)送給數(shù)據(jù)庫,以便于數(shù)據(jù)庫寫入和保存這些數(shù)據(jù);
服務(wù)層將生成的隨機字符串返回給外圍;
外圍獲得生成的隨機字符串,至此,該過程結(jié)束。
當然,圖3是舉例說明的可用于實施本申請實施例提供的方法的一種系統(tǒng) 的結(jié)構(gòu)圖,在實際應(yīng)用中,還可以有用于實施所述方法的、與該系統(tǒng)結(jié)構(gòu)不同的其他系統(tǒng),本申請實施例對可用于實施所述方法的系統(tǒng)的結(jié)構(gòu)并不做限定。
在實際應(yīng)用中,除了數(shù)據(jù)庫的sequence變量以外,類似的,也可以用其他特定變量替換sequence變量,用于實施本申請的方案。例如,所述其他特定變量可以是用于記錄系統(tǒng)時間的毫秒數(shù)的變量、或?qū)iT為生成隨機字符串定義及維護的變量,等等。
需要說明的是,若采用其他特定變量實施本申請的方案時,在每次獲取sequence變量的值之后,可能要對該sequence變量執(zhí)行變更操作,以使得下一次獲取的該sequence變量的值,與除了所述下一次以外的任一次獲取的該sequence變量的值均不相同。對于不同的特定變量,實現(xiàn)所述變更操作所耗費的成本也可能不同,在實際應(yīng)用中,可以選擇使用的特定變量實施本申請的方案。
以上為本申請實施例提供的隨機字符串生成方法,基于同樣的思路,本申請實施例還提供相應(yīng)的隨機字符串生成裝置,如圖4所示。
圖4為本申請實施例提供的隨機字符串生成裝置結(jié)構(gòu)示意圖,具體包括:
獲取模塊401,用于獲取數(shù)據(jù)庫中的序列號sequence變量的值,其中,所述sequence變量的值為由預(yù)定基本數(shù)字集合中的基本數(shù)字構(gòu)成的序列,本次獲取到的所述sequence變量的值與本次之外的任一次獲取到的所述sequence變量的值均不相同;
生成模塊402,用于根據(jù)設(shè)定的字符集合中包含的各字符與所述基本數(shù)字集合中包含的各基本數(shù)字的一一映射關(guān)系,將所述序列映射為字符串,作為生成的隨機字符串。
所述獲取模塊401具體可以用于:接收隨機字符串生成請求;根據(jù)所述生成請求的類型,從數(shù)據(jù)庫中的至少一個sequence變量中,確定預(yù)定的、與該類型對應(yīng)的sequence變量;獲取所述與該類型對應(yīng)的sequence變量的值,其中,本次獲取到的所述sequence變量的值與本次之外的任一次獲取到的所述與該 類型對應(yīng)的sequence變量的值均不相同。
當所述字符集合中包含的字符的數(shù)量為N時,所述預(yù)定基本數(shù)字集合為N進制對應(yīng)的基本數(shù)字集合,包括的基本數(shù)字為:整數(shù)0~N-1;其中,N為不小于2的整數(shù);
所述獲取模塊401具體可以用于:獲取數(shù)據(jù)庫中的sequence變量的值;當確定獲取的所述sequence變量的值不為N進制數(shù)時,將所述sequence變量的值轉(zhuǎn)換為N進制數(shù),所述N進制數(shù)為由N進制對應(yīng)的基本數(shù)字集合中的基本數(shù)字構(gòu)成的序列。
所述生成模塊具體可以用于:針對所述序列中的各基本數(shù)字,分別將每個基本數(shù)字轉(zhuǎn)換為所述字符集合中包含的、與該基本數(shù)字映射的字符;按照轉(zhuǎn)換出的各字符在轉(zhuǎn)換后的所述序列中的順序,將所述各字符進行串接構(gòu)成字符串。
所述獲取模塊具體可以用于:采用用于讓sequence變量自增后再取值的指令,獲取所述sequence變量的值。
在實際應(yīng)用中,所述指定變量可以為指定數(shù)據(jù)庫的序列sequence變量,也可以為用于記錄系統(tǒng)時間的毫秒數(shù)的變量等其他特定變量。
具體的上述如圖4所示的裝置可以位于終端、服務(wù)器上。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入 式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
在一個典型的配置中,計算設(shè)備包括一個或多個處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內(nèi)存是計算機可讀介質(zhì)的示例。
計算機可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設(shè)備訪問的信息。按照本文中的界定,計算機可讀介質(zhì)不包括暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號和載波。
還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。
以上所述僅為本申請的實施例而已,并不用于限制本申請。對于本領(lǐng)域技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進等,均應(yīng)包含在本申請的權(quán)利要求范圍之內(nèi)。