JP6636647B2 - ランダム文字列を生成する方法および装置 - Google Patents

ランダム文字列を生成する方法および装置 Download PDF

Info

Publication number
JP6636647B2
JP6636647B2 JP2018548262A JP2018548262A JP6636647B2 JP 6636647 B2 JP6636647 B2 JP 6636647B2 JP 2018548262 A JP2018548262 A JP 2018548262A JP 2018548262 A JP2018548262 A JP 2018548262A JP 6636647 B2 JP6636647 B2 JP 6636647B2
Authority
JP
Japan
Prior art keywords
sequence
value
variable
basic
sequence variable
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
Application number
JP2018548262A
Other languages
English (en)
Other versions
JP2019504426A (ja
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.)
Alibaba Group Holding 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
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2019504426A publication Critical patent/JP2019504426A/ja
Application granted granted Critical
Publication of JP6636647B2 publication Critical patent/JP6636647B2/ja
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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Document Processing Apparatus (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Stored Programmes (AREA)

Description

本出願は、2015年12月7日に出願された、「Method and Apparatus for Generating Random Character String(ランダム文字列を生成する方法および装置)」という名称の中国出願第201510892216.8号の優先権を主張するものであり、その全体は参照によりここに援用される。
本出願は、電子的デジタルデータ処理分野に関し、特に、ランダム文字列を生成する方法および装置および方法に関する。
ランダム文字列は多くのサービスで広く用いられてきている。ランダム文字列を広く用いるサービスは、例えば、暗号処理を含むサービス、および、大量のサービスデータを分類する必要のあるサービス等であってよい。
現時点で、サービスデータ間の混乱を防止するため、サービスに用いられるランダム文字列がサービスの観点から一意であること、具体的には、ランダム文字列が互いに異なっていることが一般的に要求される。
既存の技術によると、ランダム文字列を生成するために、ランダムアルゴリズムが典型的に用いられる。さらに、現在生成されたランダム文字列は、以前に生成されたランダム文字列と比較される。これらが同じであれば、現在生成されたランダム文字列は破棄され、さらにランダム文字列が生成される。こうすると、生成され保存されたそれぞれのランダム文字列はすべてのランダム文字列のなかで一意である(説明を簡単にするため、ランダム文字列を一意ランダム文字列ともいう)。
しかし、生成され保存されたランダム文字列が多数あるとき、ランダム文字列を生成したときのランダム文字列が同一にならないようにするための文字列比較動作は、何度も実行されなければならない。したがって、一意ランダム文字列を生成するためのこの方法は、非常に効率が低い。
本出願の実施形態は、一意ランダム文字列を生成するための従来技術の方法は非常に効率が低いという問題を解決する、ランダム文字列を生成する方法および装置を提供する。
本出願の実施形態によると、ランダム文字列を生成する方法は、データベースの数列(sequence)変数の値を取得するステップであって、sequence変数の値は予め定められた基本数字セットの基本数字を含む数列であり、現在取得されたsequence変数の値は他の時に取得されたsequence変数の値と異なるステップと、文字セットに含まれる文字と基本数字セットに含まれる基本数字との間の所定の一対一マッピング関係に従って数列を文字列にマッピングし、生成されたランダム文字列とするステップと、を含む。
本出願の実施形態によると、ランダム文字列を生成する装置は、データベースのsequence変数の値を取得するよう構成された取得モジュールであって、sequence変数の値は予め定められた基本数字セットの基本数字を含む数列であり、現在取得されたsequence変数の値は他の時に取得されたsequence変数の値と異なる、取得モジュールと、文字セットに含まれる文字と基本数字セットに含まれる基本数字との間の所定の一対一マッピング関係に従って数列を文字列にマッピングし、生成されたランダム文字列とする生成モジュールと、を含む。
本出願の実施形態により提供される少なくとも1つの技術的解決手段により、異なる値のsequence変数が都度取得され、これに対応して、一対一マッピング関係に従って異なるランダム文字列が都度生成される。そのため、文字列比較動作を何度も実行する必要がなく、一意ランダム文字列の生成の効率性が改善される。
明細書で説明される添付図面は、本出願をより理解するために用いられ、本出願の一部を構成する。本出願の実施例およびその説明は、本出願の説明のために用いられ、本出願の不適切な限定を構成しない。添付図面において、
本出願の実施形態に従った、ランダム文字列を生成する方法の処理を説明する図である。
本出願の実施形態に従った、ランダム文字列を生成する方法の実際のアプリケーションシナリオにおける実装処理を説明する図である。
本出願の実施形態に従った、図2の処理を実装するためのシステムの模式図である。
本出願の実施形態に従った、ランダム文字列を生成する装置の模式図である。
本出願の目的、技術的解決手段、および効果をより明確にするために、本出願の特定の実施形態および添付図面を参照して、本出願の技術的解決手段が、以下に明確かつ完全に説明される。説明される実施形態が、本出願の実施形態の全部ではなく一部に過ぎないことは明らかである。本出願の実施形態に基づいて創造的努力なく当業者が獲得可能な他のすべての実施形態は、本出願の範囲に含まれるべきものである。
背景技術に記載したように、既存技術に従って一意ランダム文字列を生成するために、後検方式(すなわち、まずランダム文字列を生成し、後でランダム文字列が一意かを検査する)が用いられ、生成され保存されたランダム文字列が一意であることを確保する。ある時に生成されたランダム文字列は、そのランダム文字列が保存されたランダム文字列のいずれかと同じであれば、破棄される。この場合、効率は非常に低く、さらに、ランダム文字列を生成するために資源が浪費される。
上記問題を解決するために、本出願の実施形態では、ランダム文字列を生成する処理の始まりにおいて、生成されるランダム文字列が一意となるように対策を講じる。こうすると、ランダム文字列が生成された後に検査を行う必要がなく、効率が向上する。さらに、ランダム文字列を生成するために資源が浪費されることがない。以下に、詳細な説明が提供される。
図1は、本出願の実施形態に従った、ランダム文字列を生成する方法の処理を説明する。この処理の実行主体は、端末またはサーバを含んでよい。端末は、パーソナルコンピュータ、携帯電話、タブレットコンピュータ、スマートウォッチ、車載型携帯ステーション等を含むがこれに限定されない。サーバは、パーソナルコンピュータ、大規模または中規模コンピュータ、コンピュータクラスタ等を含むがこれに限定されない。実行主体は、本出願を限定するものではない。説明を簡単にするため、本出願の実施形態は、実行主体が例えばサーバであるものとしてすべて説明される。
本出願の実施形態において、図1の処理は、一意ランダム文字列を生成する処理である。実際のアプリケーションでは、互いに異なる複数のランダム文字列を取得するため、処理は何回も実行される。処理は一点環境で実行されてよく、分散環境で実行されてもよい。処理の実行環境は、本出願の実施形態を限定しない。
一例では、処理は以下のステップを含んでよい:
S101:データベースのsequence変数の値を取得するステップであって、sequence変数の値は予め定められた基本数字セットにおける基本数字を含む数列であり、現在取得されたsequence変数の値は他の時に取得されたsequence変数の値と異なる。
本出願の実施形態において、sequence変数は、データベースに定義されたいかなるsequence変数であってもよい。sequence変数は、ランダム文字列を生成する機能を実現するために定義されてよく、他の機能を実現するために元々定義されていてもよく、これは本出願の実施形態によって限定されない。データベースは、Oracle(登録商標)、DB2、PostgreSQL等を含むがこれに限られない。
sequence変数は、一般的には、データベースのプライマリキーとして用いられてよい。sequence変数の値を取得するためにデータベースにより提供される特定の命令が用いられた時に、sequence変数の取得された値は都度異なってよい。特定の命令は、所定の自動増加ステップに従ってsequence変数の自動増加を許可し、そしてその変数を取得することを許可するために用いられる命令、例えばNextVal命令であってよい。
本出願の実施形態において、現在取得されたsequence変数の値に従って生成されるランダム文字列は、sequence変数の一意な値が都度取得されることに基づいて、一意であることが保証されてよい。
上記命令はデータベースにおいて既に実現された機能部分なので、本出願の解決手段を実装するときに、ステップS101においてsequence変数の異なる値が都度取得されることを保証するために自ら追加機能モジュールを開発する必要がなく、こうして本出願の解決手段を実装するコストが削減される。
本出願の実施形態において、sequence変数は数値変数である。数値変数の値は、10進数、2進数、8進数、または16進数で表現されてよい。"seq"という名称のsequence変数が、例として説明に使用される。
10進法において、seq=123とすると、seqの値は、10進法に対応する基本数字セット(含まれる基本数字は10進数の数字の0から9である)に基づいて10進数の1、2、および3によって形成される"123"という数列で表現されて具体的には10進数の123となり、2進法においては、seqの値は、2進法に対応する基本数字セット(含まれる基本数字は2進数の数字の0および1である)に基づいて2進数の0および1によって形成される"01111011"という数列で表現されて具体的には2進数の01111011となり、同様に、seqの値は8進法または16進法に基づいて表現され、ここでは個別に説明しない。
上述したように、ステップS101における予め定められた基本数字セットは、予め定められた記数法に対応する基本数字セットであってよく、それに応じて、sequence変数の値は、基本数字セットからなる数列であってよい。
S102:文字セットに含まれる文字と基本数字セットに含まれる基本数字との間の所定の一対一マッピング関係に従って数列を文字列にマッピングし、生成されたランダム文字列とする。
本出願の実施形態において、文字セットに含まれる文字の数は、基本数字セットに含まれる基本数字の数と同じであってよく、文字は互いに異なっていてよく、基本数字は互いに異なっていてよい。こうすると、文字と基本数字との間で一対一マッピング関係が成功裏に設定可能となる。
文字セットおよび/または一対一マッピング関係は、ステップS101の実行の前に設定されてよく、または、ステップS101の実行の後に設定されてもよい。前者の場合、ステップS101が実行されたとき、sequence変数の値の決定の前に文字セットが決定される。文字セットとsequence変数の値に対応する基本数字セットとの間で一対一マッピング関係の設定を確実に成功させるため、sequence変数の値を表現するために用いられる基本数字セットは、文字セットに含まれる文字の数に従って決定されてよい(基本数字セットに含まれる基本数字の数は文字の数と同じとなる)。後者の場合、同様に、文字セットは、sequence変数の値を表現するために用いられる基本数字セットに含まれる基本数字の数に従って設定されてよい。
実際のアプリケーションで数列が文字列にマッピングされた後、さらに、所定のルールに従って、文字列の先頭、中間、または末尾に他の文字が挿入されてよく、挿入後の文字列が、生成されたランダム文字列として用いられる。こうした場合、数列からマッピングされた文字列は、生成されたランダム文字列の一部となる。挿入された他の文字は、生成されたランダム文字列の一意性に影響しないことに留意されたい。
本出願の実施形態において、数列のマッピングへの所定の文字セットの利用に加えて、所定の文字列セットが、ランダム文字列の生成のための数列のマッピングに同様に用いられてよい。こうした場合、ステップS102は、以下のステップに置き換えられる:文字列セットに含まれる文字列と基本数字セットに含まれる基本数字との間の所定の一対一マッピング関係に従って数列を文字列にマッピングし、生成されたランダム文字列とする。
上述の方法に従うと、sequence変数の異なる値が都度取得され、これに対応して、一対一マッピング関係に従って異なるランダム文字列が都度生成される。そのため、文字列比較動作を何度も実行する必要がなく、一意のランダム文字列の生成の効率が改善され、サーバのリソースが削減される。さらに、都度異なるsequence変数を取得するための特定の命令がデータベースによって提供されているため、本出願の解決手段の実装コストは比較的小さく、より多くの実用シナリオの実装に好都合である。
理解を容易にするため、図1のステップを以下にさらに詳述する。
本出願の実施形態において、生成されるランダム文字列の複雑さについて、異なるサービスが異なる要求を有している場合がある。例えば、あるサービスの要求は英字のみを含むランダム文字列の生成により満足され、他のサービスは、生成されたランダム文字列が、英字を含むのみならず、数字、句読点等といった他の種類の文字を含むことを要求することがある。
上述したような要求に従って、まず要求に合致する文字セットが設定され、次に図1の各ステップが実行される。こうした場合、設定された文字セットに従って、文字セットと一対一マッピング関係にある基本数字セットが決定され、ステップS101においてsequence変数の値が表現される。
生成されるランダム文字列の複雑さに特段の要求がない場合、まずsequence変数の値が取得され、次に、値を表現する基本数字セットに従って、基本数字セットと一対一マッピング関係にある文字セットが生成されてよい。
本出願の実施形態において、サーバは、ランダム文字列を、ただ1つのサービスのために生成してよく、複数のサービスのそれぞれのために生成してもよい。後者の場合、複数のサービスはすべてランダム文字列を取得する要求を有している。複数のサービスのそれぞれは、一般的にはそのサービスの範囲内で取得されたランダム文字列を用いるので、サーバは、それぞれのサービスに対し、そのサービスの範囲内で一意なランダム文字列を生成してよい。サーバにより生成されるすべてのランダム文字列が全体の中で一意であることを保証する必要はない。
後者の場合の分析に従うと、ステップS101における「データベースのsequence変数の値を取得するステップ」は、以下を含んでよい:ランダム文字列の生成要求を受信するステップ;生成要求の種類に従って、データベースの少なくとも1つのsequence変数から、種類に対応する所定のsequence変数を決定するステップ;種類に対応するsequence変数の値を取得するステップであって、現在取得されたsequence変数の値は他の時に取得されたその種類に対応するsequence変数の値と異なるステップ。
ランダム文字列の生成要求は、ランダム文字列を取得する必要のあるサービスから来てよく、異なるサービスは異なる種類の生成要求を有してよい。生成要求の各々の種類はsequence変数に対応してよく(対応関係は、予め設定されていてよく、生成要求を受信した後に設定されてもよい)、各々のsequence変数は異なる変数名を有してよい。その結果、sequence変数は変数名に従って区別することができる。
したがって、サーバは、異なるサービスに対して、異なるsequence変数に基づき、それぞれ対応するサービス範囲において一意なランダム文字列を生成することができる。こうすると、それぞれのsequence変数が関連づけられるサービスが過多となることを防止することができ、これによりsequence変数の管理が容易になる。
実際のアプリケーションでは、あるsequence変数は複数のサービスにより共有され、複数のサービスのためにランダム文字列を生成するために用いられてよく、こうしてデータベースのオーバーヘッドを低下させる。こうした場合、このsequence変数に基づいて生成されたすべてのランダム文字列は、複数のサービスの範囲において一意である。
さらに、サーバが複数のサービスのそれぞれためにランダム文字列を生成する場合、異なるサービスのために設定される文字セットも異なってよい。さらに、サービスに対応するsequence変数の値を取得した後に、サーバは、そのサービスのための文字セットに基づいてそのサービスのためのランダム文字列を生成してよい。
本出願の実施形態において、ステップS102における「数列を文字列にマッピングし、生成されたランダム文字列とするステップ」は、以下を含んでよい:数列の各基本数字を、文字セットに含まれ、基本数字にマッピングされる文字に変換するステップ;変換後の数列における変換された文字の順序に従って、文字を順に接続して文字列を形成するステップ。説明のため、上述のsequence変数であるseqが再び用いられる。
例えば、seqは数列"123"である。所定の文字セットにおいて、基本数字"1"にマッピングされた文字は'@'であり、基本数字"2"にマッピングされた文字は'#'であり、基本数字"3"にマッピングされた文字は'$'であるとする。これらの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変数の値が11002であって、8進数ではなく10進数であるとする。このとき、10進数の11002は8進数の25372に変換されてよい。具体的には、sequence変数の値は、8進法に対応する基本数字セットに基づき、数列"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"にマッピングされ、生成されたランダム文字列とされてよい。
さらに、本出願の実施形態は、図3に示すように、図2の処理を実装するためのシステムの模式図も提供する。
システムは、周辺と、サービス層とアルゴリズム層と、データベース層とを有する。それぞれの層の処理ロジックは、同一の機器(例えばサーバ)に実装されてよく、異なる機器に実装されてもよい。
図3において矢印を付した線分は、ランダム文字列を生成する処理の処理ロジックの実行シーケンスを示しており、矢印を付した線分の両端に接続されたブロックは処理のステップの説明を含んでいる。処理は主に、以下のステップを含む:
周辺機器がサービス層に、ランダム文字列の生成の要求を送信する;
生成要求に対応し、サービス層がNextVal命令を用いてデータベース層から生成要求の種類に対応する所定のsequence変数の値を取得し、その値はサービス層に返される;
サービス層がsequence変数の値をアルゴリズム層に転送する;
所定の文字セットに基づいて、アルゴリズム層がsequence変数の値に対応する数列をランダム文字列にマッピングし、ランダム文字列をサービス層に返す;
サービス層が生成されたランダム文字列および他の関連情報をデータベースに送信し、これらのデータはデータベースに書き込まれ保存される;
サービス層が生成されたランダム文字列を周辺機器に返す;
周辺機器が生成されたランダム文字列を取得し、この時点で処理が終了する。
図3は、例を通して説明されるように、本出願の実施形態に従った方法を実装するために用いることのできるシステムの模式図である。実際のアプリケーションでは、方法を実装するための、上述のシステムとは異なる構成を有する他のシステムもあり得る。方法を実装するためのシステムの構成は、本出願の実施形態に限定されない。
実際のアプリケーションでは、データベースのsequence変数に加えて、本出願に従った解決手段を実装するためのsequence変数を置き換えるために他の所定の変数が用いられてもよい。例えば、他の所定の変数は、システム時間のミリ秒の数を記録する変数、ランダム文字列の生成の定義および維持のために特に用いられる変数等であってよい。
本出願に従った解決手段の実装に他の所定の変数が用いられる場合、sequence変数の値が取得される度に、次回取得されるsequence変数の値が他の時に取得されるsequence変数の値と異なるように、sequence変数の修正操作を実行する必要があり得ることに留意されたい。異なる所定の変数では、修正操作を実装するコストは異なり得る。実際のアプリケーションでは、用いられる所定の変数が、本出願に従った解決手段の実装のために選択されてよい。
本出願の実施形態に従ったランダム文字列を生成する方法が上記で説明された。同様の考え方に基づいて、図4に示すように、本出願の実施形態は、対応するランダム文字列生成装置をさらに提供する。
図4は、本出願の実施形態に従った、ランダム文字列生成装置の模式図であって、以下を含む:
データベースのsequence変数の値を取得するよう構成された取得モジュール401であって、sequence変数の値は予め定められた基本数字セットの基本数字を含む数列であり、現在取得されたsequence変数の値は他の時に取得されたsequence変数の値と異なる取得モジュールと、
文字セットに含まれる文字と基本数字セットに含まれる基本数字との間の所定の一対一マッピング関係に従って数列を文字列にマッピングし、生成されたランダム文字列とするよう構成された生成モジュール402。
例えば、取得モジュール401は、以下の処理を実行するよう構成されてよい:ランダム文字列の生成要求を受信し;生成要求の種類に従って、データベースの少なくとも1つのsequence変数から種類に対応する所定のsequence変数を決定し、種類に対応するsequence変数の値を取得し、現在取得されたsequence変数の値は、他の時に取得された種類に対応するsequence変数の値と異なる。
文字セットに含まれる文字の数がNであるとき、予め定められた基本数字セットは、N進法に対応し、0以上N−1以下の整数である基本数字を含み、Nは2よりも小さくない整数である。
例えば、取得モジュール401は、以下の処理を実行するよう構成されてよい:データベースのsequence変数の値を取得し;取得したsequence変数の値がN進数の数でないとの判定に応じて、sequence変数の値をN進数の数に変換し、このN進数の数はN進法に対応する基本数字セットの基本数字を含む数列である。
例えば、生成モジュールは、数列の各基本数字を、文字セットに含まれ、基本数字にマッピングされる文字に変換してよく;変換後の数列における変換された文字の順序に従って、文字を順に接続して文字列を形成してよい。
例えば、取得モジュールは、sequence変数の自動増加を許可してその値を取得する命令を用いて、sequence変数の値を取得するよう構成されてよい。
実際のアプリケーションでは、指定された変数は、指定されたデータベースのsequence関数であってよく、システム時計のミリ秒の数を記録する変数といったその他の特定の変数であってもよい。
例えば、図4に示す装置は端末またはサーバで処理されてよい。
当業者は、本発明の実施形態が方法、システム、またはコンピュータプログラム製品として提供可能であることを理解するだろう。したがって、本発明は完全なハードウェア実施形態、完全なソフトウェア実施形態、またはソフトウェアとハードウェアとが結合した実施形態として実装可能である。さらに、本発明は、コンピュータが利用可能なコードが記録された1以上のコンピュータ利用可能記録メディア(磁気ディスクメモリ、CD−ROM、光メモリ等を含むがこれに限らない)に実装されるコンピュータプログラム製品の形式で実装可能である。
本発明は、本発明の実施形態に従った方法、装置(システム)、およびコンピュータプログラム製品の、フローチャートおよび/またはブロック図を参照して説明される。コンピュータプログラム命令は、フローチャートおよび/またはブロック図における各処理および/またはブロック、および、フローチャートおよび/またはブロック図における処理および/またはブロックの組み合わせを実装するために用いられてよい。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、組み込みコンピュータ、または他のプログラム可能なデータ処理装置のプロセッサを装置として生成するために提供され、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサにより実行される命令は、フローチャートにおける1以上の処理および/またはブロック図における1以上のブロックの特定の機能を実装するための装置を生成する。
コンピュータまたは他のプログラム可能なデータ処理装置を所定の方法で動作させるよう命令するこれらのコンピュータプログラム命令は、コンピュータ可読メモリに保存され、コンピュータ可読メモリに保存された命令は命令装置に含まれる製品を生成する。命令装置は、フローチャートにおける1以上の処理および/またはブロック図における1以上のブロックの特定の機能を実装する。
これらのコンピュータプログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置に読み込まれ、一連の動作ステップがコンピュータまたは他のプログラム可能なデータ処理装置で実行され、そうしてコンピュータに実装された処理が生成される。したがって、コンピュータまたは他のプログラム可能な装置により実行される命令は、フローチャートにおける1以上の処理および/またはブロック図における1以上のブロックの特定の機能を実装するためのステップを提供する。
典型的な構成では、コンピュータ装置は、1以上のプロセッサ(CPU)、入力/出力インタフェース、ネットワークインタフェース、およびメモリを含む。
メモリは、揮発性メモリ、ランダムアクセスメモリ(RAM)、および/または不揮発メモリ、例えば読み出し専用メモリ(ROM)またはフラッシュRAMといった、コンピュータ可読媒体を含む。
コンピュータ可読媒体は、永続的、揮発性、可搬、および不可搬媒体を含み、あらゆる方法または技術を用いて情報記憶域とすることができる。情報は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータであってよい。コンピュータの記憶媒体の例は、相変化RAM(PRAM)、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、他の形式のランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能ROM(EEPROM)、フラッシュメモリまたは他のメモリ技術、CD−ROM(Compact Disc Read-Only Memory)、DVD(Digital Versatile Disc)または他の光メモリ、カセット、カセットおよびディスクメモリまたは他の磁気メモリ装置または他の非伝送メディアであって、コンピュータ装置にアクセス可能に情報を保存するための用いることのできるものを含むが、これに限られない。ここでの定義に従って、コンピュータ可読媒体は、変調されたデータ信号および搬送波といった一時的媒体を含まない。
「含む」「有する」または他のこれら変形語は非限定的な包括を包含することを意図するものであり、一連の要素を有する処理、方法、製品または装置がこれらの要素を有するのみならず、明示的に列挙されていない他の要素も有し、または、処理、方法、製品または装置に備わる要素をさらに有することに、さらに留意されたい。更なる限定がない場合、「1つの……を有する」との記載により定義される要素は、定義された要素を有する処理、方法、製品または装置において、類似する付加的な要素を除外するものではない。
上述した本出願の実施形態は単なる例であり、本出願を限定するために用いられるものではない。当業者は、本出願を様々な方法で修正し変更することができる。本出願の精神および原則の範囲内におけるいかなる修正、同等物の置換、または改良も、本出願の請求項の範囲に含まれる。

Claims (10)

  1. ランダム文字列を生成する方法であって、
    データベースのsequence変数の値を取得するステップであって、前記sequence変数の値は予め定められた基本数字セットの基本数字を含む数列であり、前記sequence変数の現在取得された値は、前記sequence変数の以前の値から増加され、前記sequence変数の前記現在取得された値は、他の時に取得されたsequence変数の値と異なるステップと、
    文字セットに含まれる文字と前記基本数字セットに含まれる前記基本数字との間の所定の一対一マッピング関係に従って前記sequence変数を文字列にマッピングし、生成されたランダム文字列とするステップと、
    を含む方法。
  2. 前記データベースのsequence変数の値を取得するステップは、
    ランダム文字列の生成要求を受信するステップと、
    前記生成要求の種類に従って、前記データベースの少なくとも1つのsequence変数から、前記種類に対応する所定のsequence変数を決定するステップと、
    前記種類に対応する前記sequence変数の値を取得するステップであって、前記現在取得されたsequence変数の値は他の時に取得された前記種類に対応するsequence変数の値と異なる、ステップと、
    を含む、請求項1に記載の方法。
  3. 前記文字セットに含まれる文字の数がNである場合、前記予め定められた基本数字セットはN進法に対応し、かつ、0以上N−1以下の整数である基本数字を含む基本数字セットであって、Nは2より小さくない整数であり、
    データベースのsequence変数の値を取得するステップであって、前記sequence変数の値は予め定められた基本数字セットの基本数字を含む数列であるステップは、
    前記データベースの前記sequence変数の値を取得するステップと、
    前記取得したsequence変数の値がN進数の数でないとの判定に対応して、前記sequence変数の値をN進数の数に変換するステップであって、前記N進数の数は前記N進法に対応する基本数字セットの前記基本数字を含む数列であるステップと、
    を含む、請求項1に記載の方法。
  4. 前記数列を文字列にマッピングするステップは、
    前記数列の各基本数字を、前記文字セットに含まれ、前記基本数字にマッピングされる文字に変換するステップと、
    変換後の前記数列における前記変換された文字の順序に従って、前記文字を順に接続して文字列を形成するステップと、を含む、請求項1に記載の方法。
  5. 前記sequence変数の値を取得するステップは、
    前記sequence変数の自動増加を許可し、その後に前記sequence変数の値を取得する命令を用いてsequence変数の値を取得するステップを含む、請求項1−3のいずれか一項に記載の方法。
  6. ランダム文字列を生成する装置であって、
    データベースのsequence変数の値を取得するよう構成された取得モジュールであって、前記sequence変数の値は予め定められた基本数字セットの基本数字を含む数列であり、前記sequence変数の現在取得された値は、前記sequence変数の以前の値から増加され、前記sequence変数の前記現在取得された値は、他の時に取得されたsequence変数の値と異なる、取得モジュールと、
    文字セットに含まれる文字と前記基本数字セットに含まれる前記基本数字との間の所定の一対一マッピング関係に従って前記数列を文字列にマッピングし、生成されたランダム文字列とするよう構成された生成モジュールと、を備える装置。
  7. 前記取得モジュールは、ランダム文字列の生成要求を受信し、前記生成要求の種類に従って、前記データベースの少なくとも1つのsequence変数から前記種類に対応する所定のsequence変数を決定し、前記種類に対応するsequence変数の値を取得し、現在取得された前記sequence変数の値は、他の時に取得された前記種類に対応するsequence変数の値と異なる、請求項6に記載の装置。
  8. 前記文字セットに含まれる文字の数がNである場合、前記予め定められた基本数字セットは、N進法に対応し、かつ、0以上N−1以下の基本数字を含む基本数字セットであって、Nは2よりも小さくない整数であり、
    前記取得モジュールは、前記データベースの前記sequence変数の値を取得し、取得されたsequence変数の値がN進数でないと判定された場合、前記sequence変数の値をN進数の数に変換し、前記N進数の数は、N進法に対応する基本数字セットの基本数字を含む数列であるよう構成される、請求項6に記載の装置。
  9. 前記生成モジュールは、前記数列の各基本数字を、前記文字セットに含まれ、前記基本数字にマッピングされる文字に変換し、前記変換後の数列における前記変換された文字の順序に従って、前記文字を順に接続して文字列を形成するよう構成される、請求項6に記載の装置。
  10. 前記取得モジュールは、前記sequence変数の自動増加を許可し、その後、前記sequence変数の値を取得する命令を用いて前記sequence変数の値を取得するよう構成される、請求項6ないし8のいずれか一項に記載の装置。
JP2018548262A 2015-12-07 2016-12-01 ランダム文字列を生成する方法および装置 Active JP6636647B2 (ja)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
JP2019504426A JP2019504426A (ja) 2019-02-14
JP6636647B2 true JP6636647B2 (ja) 2020-01-29

Family

ID=59013677

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018548262A Active JP6636647B2 (ja) 2015-12-07 2016-12-01 ランダム文字列を生成する方法および装置

Country Status (10)

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

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109087368B (zh) * 2018-06-14 2023-04-07 创新先进技术有限公司 一种字符串图形化方法和装置
CN109445749A (zh) * 2018-09-14 2019-03-08 高斯贝尔数码科技股份有限公司 一种不重复随机序列号生成方法及计算机终端
CN110262289B (zh) * 2019-07-18 2022-04-26 潍柴动力股份有限公司 A2l文件中变量的处理方法、装置和存储介质
CN113744013B (zh) * 2020-09-28 2024-05-21 北京沃东天骏信息技术有限公司 订单号的生成方法、装置、服务器及存储介质
CN112835555A (zh) * 2021-01-22 2021-05-25 广东智源机器人科技有限公司 随机数生成方法、装置和设备
CN114995799B (zh) * 2022-07-18 2022-10-25 新华三半导体技术有限公司 一种汇编代码生成方法、装置及电子设备

Family Cites Families (25)

* 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 주식회사 팬택 캐릭터 셋 생성 방법 및 그 장치
KR20090001729A (ko) * 2007-05-15 2009-01-09 엘지전자 주식회사 디지털 미디어 재생기기에서의 인증코드 부여 장치 및 방법
CN101441637A (zh) 2007-11-22 2009-05-27 国际商业机器公司 对已排序的字符串序列再排序的方法及装置
CN101533435A (zh) * 2009-04-16 2009-09-16 北京水晶石数字科技有限公司 一种序列号生成和验证的方法
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
CN101976241B (zh) * 2010-09-26 2013-01-09 用友软件股份有限公司 识别码生成方法和系统
US9317949B2 (en) * 2011-03-14 2016-04-19 Mitsubishi Electric Corporation String arrangement device
US9454753B2 (en) 2011-03-28 2016-09-27 Paypal, Inc. Friendly funding source
CN102129478B (zh) * 2011-04-26 2012-10-03 广州从兴电子开发有限公司 数据库同步方法及系统
US20130159173A1 (en) 2011-12-19 2013-06-20 Sridhar Sivaraman Shared Mobile Payments
CN102609477B (zh) * 2012-01-19 2014-10-22 北京思特奇信息技术股份有限公司 一种流水号生成器的实现方法
CN103020268B (zh) * 2012-12-26 2016-05-04 大唐软件技术股份有限公司 关系型数据库序列号应用方法和系统
AU2014223194B2 (en) * 2013-02-28 2016-07-28 Amazon Technologies, Inc. Configurable-quality random data service
US9819727B2 (en) 2013-02-28 2017-11-14 Amazon Technologies, Inc. Computing infrastructure for configurable-quality random data
US9048854B2 (en) 2013-03-12 2015-06-02 Bmc Software Inc. Unicode character conversion using one of two conversion services
CN104363584B (zh) * 2014-11-27 2018-06-15 宇龙计算机通信科技(深圳)有限公司 一种短消息加、解密的方法、装置及终端

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6636647B2 (ja) ランダム文字列を生成する方法および装置
US11314754B2 (en) Data processing method, apparatus, and device
US10963542B2 (en) Blockchain-based image processing method and apparatus
CN109032803B (zh) 数据处理方法和装置、客户端
WO2020228368A1 (zh) 基于区块链的图片处理方法及装置
CN108599973B (zh) 一种日志关联方法、装置及设备
CN109145053B (zh) 数据处理方法和装置、客户端、服务器
CN111767144A (zh) 交易数据的交易路由确定方法、装置、设备及系统
CN115599764A (zh) 一种表格数据的迁移方法、设备及介质
CN107276998B (zh) 一种基于OpenSSL的性能优化方法及装置
CN109032804B (zh) 数据处理方法和装置、服务器
US10114864B1 (en) List element query support and processing
CN115237831B (zh) 数据传输方法、装置、芯片、电子设备和介质
CN116431630A (zh) 一种基于隐私计算的数据处理方法及相关设备
CN117424698A (zh) 大规模单向散列值的存储方法及装置
CN112818367A (zh) 文件的加密方法、装置、存储介质及处理器
CN116910115A (zh) 客群查询方法、装置、计算机设备和存储介质
CN112579534A (zh) 文件筛选方法及装置
CN112733510A (zh) 一种财务凭证生成方法、装置、设备及计算机可读存储介质
CN117271843A (zh) 一种按位存储和计算数据权限的方法及设备
CN112487317A (zh) 一种统一资源定位符转换方法、装置、设备及介质
CN114237871A (zh) 云资源的编排方法、装置、计算机设备和存储介质
CN115687535A (zh) 关系型数据库的管理方法及装置
CN115114375A (zh) 基于区块链的数据存储方法、装置、电子设备及存储介质
CN114547412A (zh) 一种爬虫代码的生成方法、装置、存储介质和电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180719

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190611

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190911

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191218

R150 Certificate of patent or registration of utility model

Ref document number: 6636647

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250