KR20180088895A - 랜덤 문자열을 생성하기 위한 방법 및 장치 - Google Patents

랜덤 문자열을 생성하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20180088895A
KR20180088895A KR1020187018758A KR20187018758A KR20180088895A KR 20180088895 A KR20180088895 A KR 20180088895A KR 1020187018758 A KR1020187018758 A KR 1020187018758A KR 20187018758 A KR20187018758 A KR 20187018758A KR 20180088895 A KR20180088895 A KR 20180088895A
Authority
KR
South Korea
Prior art keywords
sequence
value
variable
sequence variable
string
Prior art date
Application number
KR1020187018758A
Other languages
English (en)
Other versions
KR102111871B1 (ko
Inventor
신위 장
Original Assignee
알리바바 그룹 홀딩 리미티드
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 알리바바 그룹 홀딩 리미티드 filed Critical 알리바바 그룹 홀딩 리미티드
Publication of KR20180088895A publication Critical patent/KR20180088895A/ko
Application granted granted Critical
Publication of KR102111871B1 publication Critical patent/KR102111871B1/ko

Links

Images

Classifications

    • G06F17/3033
    • 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/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
    • 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

Abstract

본 출원은 랜덤 문자열을 생성하기 위한 방법 및 장치를 개시한다. 그 방법은, 데이터베이스에서 시퀀스 숫자 변수의 값을 획득하는 단계로서, 시퀀스 변수의 값은 미리 결정된 기본 숫자 세트로부터의 기본 숫자를 포함하는 시퀀스이고, 시퀀스 변수의 현재 획득된 값은 임의의 다른 시간에 획득되는 시퀀스 변수의 값과는 상이한, 시퀀스 숫자 변수의 값을 획득하는 단계; 및 문자 세트에 포함되는 문자와 기본 숫자 세트에 포함되는 기본 숫자 사이의 미리 설정된 일대일 매핑 관계에 따른 생성된 랜덤 문자열로서의 문자열로 시퀀스를 매핑하는 단계를 포함한다. 본 출원에 따르면, 상이한 값의 시퀀스 변수가 매번 획득되고, 상응하여, 일대일 매핑 관계에 따라 상이한 랜덤 문자열이 매번 생성된다. 따라서, 문자열 비교의 동작을 다수 회 수행할 필요가 없고, 그에 의해, 고유의 랜덤 문자열을 생성하는 효율성을 향상시키게 된다.

Description

랜덤 문자열을 생성하기 위한 방법 및 장치
본 출원은 2015년 12월 7일자로 출원된 발명의 명칭이 "Method and Apparatus for Generating Random Character String"인 중국 특허 출원 제201510892216.8호에 대한 우선권을 주장하는데, 이 중국 특허 출원은 참고로 그 전문가 본 명세서에 통합된다.
기술분야
본 출원은 전자 디지털 데이터 처리 분야에 관한 것으로, 특히, 랜덤 문자열(random character string)을 생성하기 위한 방법 및 장치에 관한 것이다.
랜덤 문자열은 많은 서비스에서 광범위하게 사용되어 왔다. 예를 들면, 랜덤 문자열을 광범위하게 사용하는 서비스는, 암호화 프로세스를 포함하는 서비스, 많은 양의 서비스 데이터를 레이블링하는(label) 것을 필요로 하는 서비스, 및 등등일 수 있다.
현재로선, 서비스 데이터 사이의 혼동을 방지하기 위해, 서비스에 의해 사용되는 랜덤 문자열이 서비스의 범위 내에서 고유해야 한다는 것, 즉 랜덤 문자열은 서로 상이해야 한다는 것이 통상적으로 규정된다.
현존하는 기술에 따르면, 랜덤 문자열을 생성하기 위해 랜덤 알고리즘이 통상적으로 사용된다. 또한, 현재 생성된 랜덤 문자열이 이전에 생성된 랜덤 문자열과 비교된다. 그들이 동일한 경우, 현재 생성된 랜덤 문자열은 폐기되고, 랜덤 문자열이 추가로 생성된다. 그러한 만큼, 생성되어 저장된 랜덤 문자열의 각각은 모든 랜덤 문자열 사이에서 고유하다(설명의 편의상, 랜덤 문자열은 고유의 랜덤 문자열로 칭해질 수 있다).
그러나, 많은 수의 생성되어 저장된 랜덤 문자열이 존재하는 경우, 동일한 랜덤 문자열을 갖는 것을 방지하기 위해서는, 랜덤 문자열을 생성할 때 문자열을 비교하는 동작이 다수 회 수행되는 것을 필요로 한다. 따라서, 고유한 랜덤 문자열을 생성하기 위한 이 방법은 매우 낮은 효율성을 갖는다.
본 출원의 실시형태는, 고유의 랜덤 문자열을 생성하기 위한 종래 기술의 방법이 매우 낮은 효율성을 갖는다는 문제점을 해결하기 위한 랜덤 문자열을 생성하기 위한 방법 및 장치를 제공한다.
본 출원의 실시형태에 따르면, 랜덤 문자열을 생성하기 위한 방법은, 데이터베이스에서 시퀀스 숫자 변수(sequence number variable)의 값을 획득하는 단계로서, 시퀀스 변수의 값은 미리 결정된 기본 숫자 세트로부터의 기본 숫자를 포함하는 시퀀스이고, 시퀀스 변수의 현재 획득된 값은 임의의 다른 시간에 획득되는 시퀀스 변수의 값과는 상이한, 상기 시퀀스 숫자 변수의 값을 획득하는 단계; 및 문자 세트에 포함되는 문자와 기본 숫자 세트에 포함되는 기본 숫자 사이의 미리 설정된 일대일 매핑 관계에 따른 생성된 랜덤 문자열로서의 문자열로 시퀀스를 매핑하는 단계를 포함한다.
본 출원의 실시형태에 따르면, 랜덤 문자열을 생성하기 위한 장치는, 데이터베이스에서 시퀀스 숫자 변수의 값을 획득하도록 구성되는 획득 모듈로서, 시퀀스 변수의 값은 미리 결정된 기본 숫자 세트로부터의 기본 숫자를 포함하는 시퀀스이고, 시퀀스 변수의 현재 획득된 값은 임의의 다른 시간에 획득되는 시퀀스 변수의 값과는 상이한, 상기 획득 모듈; 및 문자 세트에 포함되는 문자와 기본 숫자 세트에 포함되는 기본 숫자 사이의 미리 설정된 일대일 매핑 관계에 따른 생성된 랜덤 문자열로서의 문자열로 시퀀스를 매핑하도록 구성되는 생성 모듈을 포함한다.
본 출원의 실시형태에 의해 제공되는 상기 적어도 하나의 기술적 솔루션에서, 상이한 값의 시퀀스 변수가 매번 획득되고, 상응하여, 일대일 매핑 관계에 따라 상이한 랜덤 문자열이 매번 생성된다. 따라서, 문자열 비교의 동작을 다수 회 수행할 필요가 없고, 그에 의해, 고유의 랜덤 문자열을 생성하는 효율성을 향상시키게 된다.
본 출원에서 설명되는 첨부 도면은 본 출원의 추가적인 이해를 제공하기 위해 그리고 본 명세서의 일부를 구성하기 위해 사용된다. 본 출원의 예시적인 실시형태 및 그 설명은 본 출원을 설명하기 위해 사용되며, 본 출원에 대한 부적절한 제한을 구성하지는 않는다. 첨부 도면에서:
도 1은 본 출원의 실시형태에 따른 랜덤 문자열을 생성하기 위한 방법의 프로세스를 예시한 도면;
도 2는 본 출원의 실시형태에 따른 실제 응용 시나리오에서 랜덤 문자열을 생성하기 위한 방법의 구현 프로세스를 예시한 도면;
도 3은 본 출원의 실시형태에 따른 도 2의 프로세스를 구현하기 위한 시스템의 구조도;
도 4는 본 출원의 실시형태에 따른 랜덤 문자열을 생성하기 위한 장치의 개략적인 구조도.
본 출원의 목적, 기술적 솔루션, 및 이점을 더 명확하게 만들기 위해, 본 출원의 기술적 솔루션은 본 출원의 특정한 실시형태 및 첨부의 도면을 참조하여 하기에서 명확하고 완전하게 설명될 것이다. 명백하게는, 설명된 실시형태는 본 출원의 실시형태의 전체가 아닌 일부에 불과하다. 본 출원의 실시형태에 기초하여 그리고 발명적 노력 없이 기술 분야의 숙련된 자에 의해 획득 가능한 모든 다른 실시형태는 본 출원의 범위 내에 속할 것이다.
배경기술에서 언급되는 바와 같이, 생성되고 저장된 랜덤 문자열이 고유하다는 것을 보증하기 위해, 사후 방식(posterior manner)이 사용되어 현존하는 기술에 따라 고유의 랜덤 문자열을 생성한다(즉, 랜덤 문자열을 먼저 생성하고, 그 다음, 랜덤 문자열이 고유한지를 검사한다). 어떤 시간에 생성되는 랜덤 문자열의 경우, 랜덤 문자열이 저장된 랜덤 문자열 중 임의의 것과 동일한 경우 랜덤 문자열은 폐기될 것이다. 이 경우, 효율성은 매우 낮고, 또한, 랜덤 문자열을 생성하기 위한 리소스가 낭비될 것이다.
상기의 문제점을 해결하기 위해, 본 출원의 실시형태에서는 랜덤 문자열을 생성하는 프로세스의 소스에서, 생성된 랜덤 문자열이 고유하도록 하는 조치가 취해질 수 있다. 그러한 만큼, 랜덤 문자열이 생성된 이후 검사할 필요가 없고, 효율성은 높을 것이다. 또한, 랜덤 문자열을 생성하기 위한 리소스는 낭비되지 않을 것이다. 상세한 설명은 이하에서 제공될 것이다.
도 1은 본 출원의 실시형태에 따른 랜덤 문자열을 생성하기 위한 방법의 프로세스를 예시한다. 이 프로세스를 실행하기 위한 본체는 단말 또는 서버를 포함할 수 있다. 단말은, 퍼스널 컴퓨터, 이동 전화, 태블릿 컴퓨터, 스마트워치, 차량 탑재 이동국, 및 등등을 포함하지만 그러나 이들로 제한되지는 않는다; 서버는 퍼스널 컴퓨터, 대형 또는 중형 컴퓨터, 컴퓨터 클러스터, 및 등등을 포함하지만, 그러나 이들로 제한되지는 않는다. 실행 본체는 본 출원에 대한 제한을 구성하지는 않는다. 설명의 용이성을 위해, 본 출원의 실시형태 모두는, 예로서 실행 본체를 서버로 하여 설명된다.
본 출원의 실시형태에서, 도 1의 프로세스는 고유한 랜덤 문자열을 생성하는 프로세스일 수 있다. 실제 응용에서, 서로 상이한 복수의 랜덤 문자열을 획득하기 위해서는 프로세스가 다수 회 실행될 수 있다. 프로세스는 단일 지점 환경(single point environment)에서 실행될 수 있거나, 또는 분산 환경에서 실행될 수 있다; 프로세스의 실행 환경은 본 출원의 실시형태에서 제한되지 않는다.
하나의 예에서, 프로세스는 다음의 단계를 포함할 수 있다:
S101: 데이터베이스에서 시퀀스 변수의 값을 획득하는 단계, 여기서 시퀀스 변수의 값은 미리 결정된 기본 숫자 세트로부터의 기본 숫자를 포함하는 시퀀스이고, 시퀀스 변수의 현재 획득된 값은 임의의 다른 시간에 획득되는 시퀀스 변수의 값과는 상이하다.
본 출원의 실시형태에서, 시퀀스 변수는 데이터베이스 내의 임의의 정의된 시퀀스 변수일 수 있다. 시퀀스 변수는 랜덤 문자열을 생성하기 위한 기능을 달성하기 위해 정의될 수 있거나, 또는 본래는 다른 기능을 달성하기 위해 정의될 수 있는데, 본 출원의 실시형태에 의해 제한되지 않을 것이다. 데이터베이스는 Oracle(오라클), DB2, PostgreSQL, 및 등등을 포함하지만, 그러나 이들로 제한되지는 않는다.
시퀀스 변수는 통상적으로 데이터베이스의 기본 키로서 사용될 수 있다. 데이터베이스에 의해 제공되는 특정한 명령어가 시퀀스 변수의 값을 획득하기 위해 사용되는 경우, 시퀀스 변수의 획득된 값은 매번 상이할 수 있다. 특정한 명령어는 미리 설정된 자동 증가 단계에 따라 시퀀스 변수의 자동 증가를 허용하기 위해, 그 다음, 예를 들면, 그것의 값을 획득하기 위해 사용되는 명령어, 예를 들면, NextVal 명령어일 수 있다.
본 출원의 실시형태에 있어서, 매번 고유한 값의 시퀀스 변수가 획득되는 것에 기초하여, 시퀀스 변수의 현재 획득된 값에 따라 생성되는 랜덤 문자열이 고유하다는 것이 보장될 수 있다.
상기 명령어가, 달성된 데이터베이스의 기능적 부분이기 때문에, 본 출원의 솔루션이 구현될 때, 단계 S101에서 상이한 값의 시퀀스 변수가 매번 획득되는 것을 보장하기 위해, 추가적인 기능 모듈이 개발될 필요가 없고, 그에 의해, 본 출원의 솔루션의 구현 비용을 감소시킨다.
본 출원의 실시형태에서, 시퀀스 변수는 수치 변수(numeric variable)이다. 수치 변수의 값은 10진수, 2진수, 8진수, 또는 16진수에 의해 표현될 수 있다. "seq"의 이름을 갖는 시퀀스 변수가 설명을 위한 예로서 사용될 것이다.
십진법에서는, seq = 123이라고 가정하면, seq의 값은, 십진법(포함된 기본 숫자는 0 내지 9의 십진수임)에 대응하는 기본 숫자 세트에 기초하여 십진수 1, 2 및 3에 의해 형성되는 시퀀스 "123", 즉 123의 십진수에 의해 표현될 수 있다; 이진법(binary system)에서, seq의 값은, 이진법(포함된 기본 숫자는 0 및 1의 이진수임)에 대응하는 기본 숫자 세트에 기초하여 이진수 0 및 1에 의해 형성되는 시퀀스 "01111011", 즉 01111011의 이진수에 의해 표현될 수 있다; 마찬가지로, seq의 값은, 본 명세서에서 하나씩 차례로 설명되지 않을 8진법(octal system) 또는 16진법(hexadecimal system)에 기초하여 표현될 수 있다.
상기에서 설명되는 바와 같이, 단계 S101에서의 미리 결정된 기본 숫자 세트는 미리 결정된 진법(numeral system)에 대응하는 기본 숫자 세트일 수 있고, 상응하여, 시퀀스 변수의 값은 기본 숫자 세트의 기본 숫자를 포함하는 시퀀스일 수 있다.
S102: 문자 세트에 포함되는 문자와 기본 숫자 세트에 포함되는 기본 숫자 사이의 미리 설정된 일대일 매핑 관계에 따른 생성된 랜덤 문자열로서의 문자열로 시퀀스를 매핑하는 단계.
본 출원의 실시형태에서, 문자 세트에 포함되는 문자의 수는 기본 숫자 세트에 포함되는 기본 숫자의 수와 동일할 수 있고, 문자는 서로 상이할 수 있고, 기본 숫자는 서로 상이할 수 있다. 그러한 만큼, 문자와 기본 숫자 사이에 일대일 매핑 관계가 성공적으로 설정될 수 있다.
문자 세트 및/또는 일대일 매핑 관계는 단계 S101의 실행 이전에 설정될 수 있거나, 또는 단계 S101의 실행 이후에 설정될 수 있다. 전자의 경우, 단계 S101이 실행될 때, 문자 세트는 시퀀스 변수의 값의 결정에 앞서 결정된다. 문자 세트와 시퀀스 변수의 값에 대응하는 기본 숫자 세트 사이의 일대일 매핑 관계가 성공적으로 설정될 수 있는 것을 보장하기 위해, 시퀀스 변수의 값을 표현하기 위해 사용되는 기본 숫자 세트는 문자 세트에 포함되는 문자의 수에 따라 결정될 수 있다(기본 숫자 세트에 포함되는 기본 숫자의 수는 문자 수와 같아야 한다); 후자의 경우에, 마찬가지로, 문자 세트는, 시퀀스 변수의 값을 표현하기 위해 사용되는 기본 숫자 세트에 포함되는 기본 숫자의 수에 따라 설정될 수 있다.
또한, 실제 응용에서 시퀀스가 문자열로 매핑된 이후, 또한, 미리 설정된 규칙에 따라 문자열의 선두, 중간 또는 꼬리에 다른 문자가 삽입될 수도 있고, 그 다음, 삽입 이후의 문자열이, 생성된 랜덤 문자열로서 사용된다. 이러한 경우, 시퀀스로부터 매핑되는 문자열은 생성된 랜덤 문자열의 일부일 수 있다. 삽입된 다른 문자는 생성된 랜덤 문자열의 고유성에 영향을 주어서는 안 된다는 것을 유의해야 한다.
본 출원의 실시형태에서, 시퀀스를 매핑하기 위한 미리 설정된 문자 세트의 사용에 추가하여, 시퀀스를 매핑하여 랜덤 문자열을 생성하기 위해, 미리 설정된 문자열 세트가 마찬가지로 사용될 수 있다. 이러한 경우, 단계 S102는 다음의 단계에 의해 대체될 수 있다: 문자열 세트에 포함되는 문자열과 기본 숫자 세트에 포함되는 기본 숫자 사이의 미리 설정된 일대일 매핑 관계에 따른 생성된 랜덤 문자열로서의 문자열로 시퀀스를 매핑하는 단계.
상기의 방법에 따르면, 상이한 값의 시퀀스 변수가 매번 획득되고, 상응하여, 일대일 매핑 관계에 따라 상이한 랜덤 문자열이 매번 생성된다. 따라서, 문자열 비교의 동작을 다수 회 수행할 필요가 없고, 그에 의해, 고유한 랜덤 문자열을 생성하는 효율성을 향상시키고 서버의 리소스를 절약하게 된다. 또한, 상이한 값의 시퀀스 변수를 매번 획득하기 위해 특정한 명령어가 데이터베이스에 의해 제공되기 때문에, 본 출원의 솔루션의 구현 비용은 상대적으로 낮은데, 이것은 더 많은 적용 가능한 시나리오에서의 구현을 촉진한다.
이해를 용이하게 하기 위해, 도 1의 단계가 하기에서 더 설명될 것이다.
본 출원의 실시형태에서, 상이한 서비스는 생성된 랜덤 문자열의 복잡성에 대해 상이한 요건을 가질 수도 있다. 예를 들면, 하나의 서비스의 요건은, 영어 문자만을 포함하는 랜덤 문자열을 생성하는 것에 의해 충족될 수 있고, 한편 다른 서비스는, 생성된 랜덤 문자열이 영어 문자를 포함할 뿐만 아니라, 숫자, 구두점(punctuation), 및 등등과 같은 다른 타입의 문자를 또한 포함하는 것을 규정할 수도 있다.
상기에서 설명되는 것과 같은 요건에 따라, 요건을 충족하는 문자 세트가 먼저 설정될 수 있고, 그 다음, 도 1의 단계가 수행된다. 이러한 경우, 설정된 문자 세트에 따라, 단계 S101에서 시퀀스 변수의 값을 표현하기 위해, 문자 세트와 일대일 매핑 관계에 있는 기본 숫자 세트가 결정될 수 있다.
생성된 랜덤 문자열의 복잡성에 대해 특별한 요건이 없다면, 먼저 시퀀스 변수의 값이 획득될 수 있고, 그 다음, 그 값을 표현하는 기본 숫자 세트에 따라, 기본 숫자 세트와 일대일 매핑 관계에 있는 문자 세트가 생성될 수 있다.
본 출원의 실시형태에서, 서버는 단지 하나의 서비스에 대해서만 또는 복수의 서비스에 대해 각각 랜덤 문자열을 생성할 수 있다. 후자의 경우, 복수의 서비스 모두는 랜덤 문자열을 획득하기 위한 수요를 갖는다. 복수의 서비스의 각각이 통상적으로 서비스의 범위에서만 획득된 랜덤 문자열을 사용하기 때문에, 서버는, 각각의 서비스에 대해, 서비스의 범위 내에서 고유한 랜덤 문자열을 생성할 수 있다. 서버에 의해 생성되는 모든 랜덤 문자열은 전역적으로 고유하다는 것을 보장할 필요는 없다.
후자의 경우의 분석에 따르면, 단계 S101에서 "데이터베이스에서 시퀀스 변수의 값을 획득하는 단계"는, 랜덤 문자열을 생성하기 위한 요청을 수신하는 것; 생성 요청의 타입에 따라, 데이터베이스 내의 적어도 하나의 시퀀스 변수로부터 타입에 대응하는 미리 설정된 시퀀스 변수를 결정하는 것; 타입에 대응하는 시퀀스 변수의 값을 획득하는 것을 포함할 수 있고, 시퀀스 변수의 현재 획득된 값은 임의의 다른 시간에 획득되는 타입에 대응하는 시퀀스 변수의 값과는 상이하다.
랜덤 문자열을 생성하기 위한 요청은, 랜덤 문자열을 획득하는 것을 필요로 하는 서비스로부터 유래할 수 있고, 상이한 서비스는 상이한 타입의 생성 요청을 가질 수 있다. 생성 요청의 각각의 타입은, 시퀀스 변수에 대응할 수 있고(대응하는 관계는 미리 설정될 수 있거나 또는 생성 요청을 수신한 이후 설정될 수 있다), 각각의 시퀀스 변수는 상이한 변수명을 갖는다. 결과적으로 시퀀스 변수는 변수명에 따라 구분될 수 있다.
따라서, 서버는, 상이한 서비스에 대해, 상이한 시퀀스 변수에 기초하여, 대응하는 서비스 범위에서 고유한 랜덤 문자열을 각각 생성할 수 있다. 그러한 만큼, 각각의 시퀀스 변수가 너무 많은 서비스와 관련되는 것이 방지될 수 있는데, 이것은 시퀀스 변수의 제어를 용이하게 한다.
실제 응용에서, 하나의 시퀀스 변수가 복수의 서비스에 의해 공유될 수 있고, 복수의 서비스에 대한 랜덤 문자열을 생성하기 위해 사용될 수 있고, 그에 의해, 데이터베이스의 오버헤드를 감소시킨다. 이러한 경우, 이 시퀀스 변수에 기초하여 생성되는 모든 랜덤 문자열은, 복수의 서비스의 범위 내에서 고유하다.
또한, 복수의 서비스에 대해 서버가 랜덤 문자열을 각각 생성하면, 상이한 서비스에 대해 설정되는 문자 세트도 또한 상이할 수 있다. 또한, 서비스에 대응하는 시퀀스 변수의 값을 획득한 이후, 서버는 서비스에 대한 문자 세트에 기초하여 서비스에 대한 랜덤 문자열을 생성할 수 있다.
본 출원의 실시형태에서, 단계 S102에서 "시퀀스를 문자열로 매핑하는 단계"는, 시퀀스 내의 각각의 기본 숫자를, 문자 세트에 포함되며 기본 숫자로 매핑되는 문자로 변환하는 단계; 변환 이후 시퀀스 내의 변환된 문자의 시퀀스에 따라, 문자를 직렬로 연결하여 문자열을 형성하는 단계를 포함할 수 있다. 상기의 시퀀스 변수인 seq가 설명을 위해 다시 예로서 사용된다.
예를 들면, seq는 시퀀스 "123"이다. 미리 설정된 문자 세트에서, 기본 숫자 "1"에 매핑되는 문자가 '@'이고, 기본 숫자 "2"에 매핑되는 문자가 '#'이고, 기본 숫자 "3"에 매핑되는 문자가 '$'라는 것을 가정하면, 이들 세 문자는 연속적으로 직렬로 "@ # $"로 연결될 수 있고, 시퀀스 "123"은 문자열 "@ # $"에 매핑될 수 있다.
본 출원의 실시형태에서, 문자 세트가 미리 설정된 이후 시퀀스 변수의 값이 획득되면, 변환 이후의 값을 표현하기 위한 기본 숫자 세트가 미리 설정된 문자 세트와 일대일 매핑 관계를 가질 수 있도록, 값을 상이한 진법으로 변환하는 것이 필요할 수도 있다.
예를 들면, 문자 세트에 포함되는 문자의 수가 N 개인 경우, 미리 결정된 기본 숫자 세트는, 다음의 기본 숫자: 정수 0 내지 N-1을 포함하는, 기수 N진법(base N numeral system)에 대응하는 기본 숫자 세트인데, 여기서 N은 2 이상의 정수이다. 이러한 경우, 단계 S101의 경우, "데이터베이스에서 시퀀스 변수의 값을 획득하는 단계(여기서 시퀀스 변수의 값은 미리 결정된 기본 숫자 세트로부터의 기본 숫자를 포함하는 시퀀스이고, 시퀀스 변수의 현재 획득된 값은 임의의 다른 시간에 획득되는 시퀀스 변수의 값과는 상이함)"는, 데이터베이스에서 시퀀스 변수의 값을 획득하는 것; 시퀀스 변수의 획득된 값이 기수 N의 숫자(base-N number)가 아니다는 것을 결정하는 것에 응답하여, 시퀀스 변수의 값을 기수 N의 숫자로 변환하는 것을 포함할 수 있고, 기수 N의 숫자는 기수 N진법에 대응하는 기본 숫자 세트 내의 기본 숫자를 포함하는 시퀀스이다. 하기에서 예를 통해 설명이 제공될 것이다.
예를 들면, 미리 설정된 문자 세트가 8개의 문자(즉, N=8)를 포함하는 {'r', '7', 'd', 'm', 'g', 'a', 'x', '3'}이라는 것을 가정하면, 문자 세트에 포함되는 문자와 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')}로서 표현된다는 것을 가정하면, 여기서 괄호의 각각의 쌍은 매핑 쌍을 포함하고, 각각의 매핑 쌍은, 서로 매핑하는 문자 세트에 포함되는 문자 및 기본 숫자 세트에 포함되는 기본 숫자를 포함한다.
시퀀스 변수의 현재 획득된 값이, 8진수가 아닌, 10진수 11002라는 것을 가정하면, 십진수 11002는 8진수 25372로 변환될 수 있다. 즉, 시퀀스 변수의 값은 8진법에 대응하는 기본 숫자 세트에 기초하여 시퀀스 "25372"로 표현될 수 있다. 또한, 시퀀스 "25372"는, 문자 세트 및 일대일 매핑 관계에 따라, 현재 시간에 생성되는 랜덤 문자열로서의 문자열 "dam3d"로 변환될 수 있다.
본 출원의 실시형태에서, 단계 S101이 실행될 때마다, 명령어가 시퀀스 변수의 자동 증가를 허용하기 위해, 그 다음, 시퀀스 변수의 값을 획득하기 위해, 상이한 값의 시퀀스 변수가 매번 획득되도록 하는 명령어가 사용될 수 있다. 현재로서는, 대부분의 데이터베이스에서, 시퀀스 변수의 자동 증가를 허용하기 위해, 그 다음 그것의 값을 획득하기 위해 사용되는 명령어는 NextVal 명령어일 수 있다는 것이 상기에서 언급되었다. 명령어의 명칭은 본 출원의 실시형태에서 제한되지 않는다는 것, 및 "NextVal"은 명령어의 명칭의 예라는 것을 유의해야 한다.
도 1의 단계가 상기에서 추가로 설명되었다. 이해를 용이하게 하기 위해, 본 출원의 실시형태에 따른 랜덤 문자열을 생성하기 위한 방법의 구현 프로세스가 실제 응용 시나리오에서의 예를 사용하여 설명될 것이다.
데이터베이스의 시퀀스 변수의 값이 디폴트로 10진수라고 가정하면, 미리 설정된 문자 세트에 포함되는 문자의 수는 N이고, 문자 세트는 사전에 어레이 형태로 생성되어 저장된다. 도 2에서 도시되는 바와 같이, 프로세스는 다음 단계를 포함할 수 있다:
S201: N의 길이를 갖는 어레이를 생성함, N은 10이 아니고, 어레이는 N개의 상이한 문자를 포함하는 것으로 가정하는 단계.
상기의 예에서의 문자 세트 및 일대일 매핑 관계가 다시 사용될 것이다. 어레이는 다음 명령어를 사용하는 것에 의해 생성될 수 있다:
char [] digit = {'r','7','d','m','g','a','x','3'}.
S202: NextVal 명령어를 사용하여 데이터베이스에서 시퀀스 변수의 값을 획득하는 단계(여기서 값은 십진수임).
시퀀스 변수의 획득된 값이 십진수 11002인 것으로 가정한다.
S203: 시퀀스 변수의 획득된 값을 십진수로부터 기수 N의 숫자로 변환하는 단계.
N = 8이라고 가정하면, 변환 이후의 시퀀스 변수의 값은 8진수 25372이고, 대응하는 시퀀스는 "25372"이다.
N = 10인 경우, 단계 S203은, 단계를 실행할 필요가 없으므로, 생략될 수 있다는 것을 유의해야 한다.
S204: 어레이에 포함되는 문자와 기수 N진법에 대응하는 기본 숫자 세트에 포함되는 기본 숫자 사이의 미리 설정된 일대일 매핑 관계에 따라, 변환을 통해 획득되며 기수 N의 숫자에 대응하는 시퀀스를, 생성된 랜덤 문자열로서의 문자열로 매핑하는 단계.
시퀀스 "25372"는, 생성된 랜덤 문자열로서의 문자열 "dam3d"로 매핑될 수 있다.
또한, 본 출원의 실시형태는 또한, 도 3에서 도시되는 바와 같이, 도 2의 프로세스를 구현하기 위한 시스템의 구조도를 제공한다.
시스템은 주변장치, 서비스 계층, 알고리즘 계층 및 데이터베이스 계층을 포함할 수 있다. 각각의 계층의 처리 로직은 동일한 디바이스(예를 들면, 서버) 상에서 구현될 수 있거나 또는 상이한 디바이스 상에서 구현될 수 있다.
도 3에서 화살표를 갖는 선분(line segment)은 랜덤 문자열을 생성하는 프로세스의 처리 로직의 실행 시퀀스를 나타낼 수 있고, 화살표를 갖는 선분의 두 단부에 의해 연결되는 블록은 프로세스에서의 단계의 설명을 포함한다. 프로세스는 주로 다음 단계를 포함할 수 있다:
주변장치 디바이스가 랜덤 문자열을 생성하기 위한 요청을 서비스 계층으로 전송하는 단계;
생성 요청에 응답하여, 서비스 계층은 NextVal 명령어를 사용하여, 데이터베이스 계층으로부터 상기 생성 요청의 타입에 대응하는 미리 설정된 시퀀스 변수의 값을 획득하고, 그 값은 서비스 계층으로 반환하는 단계;
서비스 계층은 시퀀스 변수의 값을 알고리즘 계층으로 전달하는 단계;
미리 설정된 문자 세트에 기초하여, 알고리즘 레이어는 시퀀스 변수의 값에 대응하는 시퀀스를 랜덤 문자열로 매핑하고 랜덤 문자열을 서비스 계층으로 반환하는 단계;
서비스 계층은 생성된 랜덤 문자열 및 다른 관련 정보를, 이들 데이터가 데이터베이스에 기록 및 저장되도록, 데이터베이스로 전송하는 단계;
서비스 계층은 생성된 랜덤 문자열을 주변장치 디바이스로 반환하는 단계;
주변장치 디바이스는 생성된 랜덤 문자열을 획득하고, 프로세스는 이 지점에서 종료하는 단계.
도 3은, 예를 통해 설명되는 바와 같이, 본 출원의 실시형태에 따른 방법을 구현하기 위해 사용될 수 있는 시스템의 구조도이다. 실제 응용에서는, 상기의 시스템과는 상이한 구조를 갖는, 방법을 구현하기 위한 다른 시스템이 존재할 수도 있다. 방법을 구현하기 위한 시스템의 구조는 본 출원의 실시형태에서 제한되지 않는다.
실제 응용에서, 데이터베이스의 시퀀스 변수 이외에, 다른 특정 변수가 사용되어 본 출원에 따른 솔루션을 구현하기 위한 시퀀스 변수를 대체할 수도 있다. 예를 들면, 다른 특정한 변수는, 시스템 시간의 밀리초의 수를 기록하기 위한 변수, 랜덤 문자열의 생성을 정의 및 유지하기 위한 변수, 및 등등일 수 있다.
본 출원에 따른 솔루션을 구현하기 위해 다른 특정한 변수가 사용되는 경우, 다음 번 시간에 획득되는 시퀀스 변수의 값이 임의의 다른 시간에 획득되는 시퀀스 변수의 값과는 상이하도록, 시퀀스 변수의 값이 획득될 때마다 시퀀스 변수에 대해 수정 동작을 실행하는 것이 필요할 수도 있다는 것을 유의해야 한다. 상이한 특정한 변수의 경우 수정, 동작 수정을 구현하기 위한 비용은 상이할 수도 있다. 실제 응용에서, 사용되는 특정한 변수는 본 출원에 따른 솔루션을 구현하도록 선택될 수 있다.
본 출원의 실시형태에 따른 랜덤 문자열을 생성하기 위한 방법이 상기에서 설명되어 있다. 동일한 생각에 기초하여, 본 출원의 실시형태는 또한, 도 4에서 도시되는 바와 같이, 랜덤 문자열을 생성하기 위한 대응하는 장치를 제공한다.
도 4는 본 출원의 실시형태에 따른 랜덤 문자열을 생성하기 위한 장치의 개략적인 구조도로서, 그 장치는,
데이터베이스에서 시퀀스 숫자 변수의 값을 획득하도록 구성되는 획득 모듈(401)로서, 시퀀스 변수의 값은 미리 결정된 기본 숫자 세트로부터의 기본 숫자를 포함하는 시퀀스이고, 시퀀스 변수의 현재 획득된 값은 임의의 다른 시간에 획득되는 시퀀스 변수의 값과는 상이한, 상기 획득 모듈(401); 및
문자 세트에 포함되는 문자와 기본 숫자 세트에 포함되는 기본 숫자 사이의 미리 설정된 일대일 매핑 관계에 따른 생성된 랜덤 문자열로서의 문자열로 시퀀스를 매핑하도록 구성되는 생성 모듈(402)를 포함한다.
예를 들면, 획득 모듈(401)은, 랜덤 문자열을 생성하기 위한 요청을 수신하도록; 생성 요청의 타입에 따라, 데이터베이스 내의 적어도 하나의 시퀀스 변수로부터 타입에 대응하는 미리 설정된 시퀀스 변수를 결정하도록; 타입에 대응하는 시퀀스 변수의 값을 획득하도록 구성될 수 있고, 시퀀스 변수의 현재 획득된 값은 임의의 다른 시간에 획득되는 타입에 대응하는 시퀀스 변수의 값과는 상이하다.
문자 세트에 포함되는 문자의 수가 N인 경우, 미리 결정된 기본 숫자 세트는, 다음의 기본 숫자: 정수 0 내지 N-1를 포함하는, 기수 N진법에 대응하는 기본 숫자 세트이며; 여기서 N은 2 이상의 정수이다.
예를 들면, 획득 모듈(401)은, 데이터베이스에서 시퀀스 변수의 값을 획득하도록; 시퀀스 변수의 획득된 값이 기수 N의 숫자가 아니다는 것을 결정하는 것에 응답하여, 시퀀스 변수의 값을 기수 N의 숫자로 변환하도록 구성될 수 있고, 기수 N의 숫자는 기수 N진법에 대응하는 기본 숫자 세트 내의 기본 숫자를 포함하는 시퀀스이다.
예를 들면, 생성 모듈은, 시퀀스 내의 각각의 기본 숫자를, 문자 세트에 포함되며 기본 숫자로 매핑되는 문자로 변환하도록; 변환 이후 시퀀스 내의 변환된 문자의 시퀀스에 따라, 문자를 직렬로 연결하여 문자열을 형성하도록 구성될 수 있다.
예를 들면, 획득 모듈은, 시퀀스 변수의 자동 증가를 허용하고, 그 다음 그것의 값을 획득하는 명령어를 사용하는 것에 의해 시퀀스 변수의 값을 획득하도록 구성될 수 있다.
실제 응용에서, 지정된 변수는 지정된 데이터베이스의 시퀀스 변수일 수 있거나 또는 시스템 시간의 밀리초의 수를 기록하기 위한 변수와 같은 다른 특정한 변수일 수 있다.
예를 들면, 도 4에서 도시되는 장치는 단말 또는 서버 상에 배치될 수 있다.
기술 분야의 숙련된 자는, 본 발명의 실시형태가 방법, 시스템, 또는 컴퓨터 프로그램 제품으로서 제공될 수도 있다는 것을 이해해야 한다. 따라서, 본 발명은 완전한 하드웨어 실시형태, 완전한 소프트웨어 실시형태, 또는 소프트웨어와 하드웨어를 결합하는 실시형태로서 구현될 수도 있다. 또한, 본 발명은, 컴퓨터 사용 가능 프로그램 코드를 내부에 포함하는 하나 이상의 컴퓨터 사용 가능 저장 매체(자기 디스크 메모리, CD-ROM, 광학 메모리, 및 등등을 포함하지만, 그러나 이들로 제한되지는 않음) 상에서 구현되는 컴퓨터 프로그램 제품의 형태로 구현될 수도 있다.
본 발명은, 본 발명의 실시형태에 따른 방법, 디바이스(시스템) 및 컴퓨터 프로그램 제품의 플로우차트 및/또는 블록도를 참조하여 설명된다. 플로우차트 및/또는 블록도에서의 각각의 프로세스 및/또는 블록 및 플로우차트 및/또는 블록도에서의 프로세스 및/또는 블록의 조합을 구현하기 위해 컴퓨터 프로그램 명령어가 사용될 수도 있다는 것이 이해되어야 한다. 이들 컴퓨터 프로그램 명령어는, 컴퓨터 또는 다른 프로그래밍 가능한 데이터 처리 디바이스의 프로세서에 의해 실행되는 명령어가, 플로우차트 내의 하나 이상의 프로세스에서 및/또는 블록도 내의 하나 이상의 블록에서 명시된 기능을 구현하기 위한 장치를 생성하도록, 범용 컴퓨터, 특수 목적의 컴퓨터, 내장된 프로세서, 또는 다른 프로그래밍 가능한 데이터 처리 디바이스의 프로세서에 제공되어 머신을 생성할 수도 있다.
이들 컴퓨터 프로그램 명령어는 또한, 컴퓨터 판독 가능 메모리에 저장되는 명령어가 명령어 장치를 포함하는 제조 물품을 생성하도록, 컴퓨터 또는 임의의 다른 프로그래밍 가능한 데이터 처리 디바이스에게 특정한 방식으로 동작할 것을 지시할 수 있는 컴퓨터 판독가능 메모리에 저장될 수도 있다. 명령어 장치는 플로우차트 내의 하나 이상의 프로세스의 및/또는 블록도 내의 하나 이상의 블록의 명시된 기능을 구현한다.
이들 컴퓨터 프로그램 명령어는 또한, 일련의 동작 단계가 컴퓨터 또는 다른 프로그래밍 가능한 디바이스 상에서 수행되고, 그에 의해 컴퓨터 구현 처리를 생성하도록, 컴퓨터 또는 다른 프로그래밍 가능한 데이터 처리 디바이스 상으로 로딩될 수도 있다. 따라서, 컴퓨터 또는 다른 프로그래밍 가능한 디바이스 상에서 실행되는 명령어는, 플로우차트 내의 하나 이상의 프로세스의 및/또는 블록도 내의 하나 이상의 블록의 명시된 기능을 구현하기 위한 단계를 제공한다.
통상적인 구성에서, 계산 디바이스(computation device)는 하나 이상의 프로세서(CPU), 입/출력 인터페이스, 네트워크 인터페이스 및 메모리를 포함한다.
메모리는, 휘발성 메모리, 랜덤 액세스 메모리(random access memory: RAM) 및/또는 불휘발성 메모리, 예를 들면, 판독 전용 메모리(read-only memory: ROM) 또는 플래시 RAM과 같은 컴퓨터 판독가능 매체를 포함할 수도 있다. 메모리는 컴퓨터 판독가능 매체의 한 예이다.
컴퓨터 판독 가능 매체는 임의의 방법 또는 기술을 통해 정보 저장을 구현할 수 있는 영구적, 휘발성, 이동식 및 고정식 매체를 포함한다. 정보는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터일 수도 있다. 컴퓨터의 저장 매체의 예는, 상 변화 RAM(Phase-change RAM: PRAM), 정적 RAM(Static RAM: SRAM), 동적 RAM(Dynamic RAM; DRAM), 다른 타입의 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 전기적으로 소거 가능한 프로그래밍 가능한 판독 전용 메모리(Electrically Erasable Programmable Read-Only Memory: EEPROM), 플래시 메모리 또는 다른 메모리 기술, 컴팩트 디스크 판독 전용 메모리(Compact Disk Read-Only Memory: CD-ROM), 디지털 다기능 디스크(Digital Versatile Disc: DVD) 또는 다른 광학 메모리, 카세트, 카세트 및 디스크 메모리 또는 다른 자기 메모리 디바이스 또는 계산 디바이스가 액세스할 수 있는 정보를 저장하기 위해 사용될 수 있는 임의의 다른 비 송신 매체를 포함하지만, 그러나 이들로 제한되지는 않는다. 본 명세서에서의 정의에 따르면, 컴퓨터 판독가능 매체는 일시적 매체, 예컨대 변조된 데이터 신호 및 반송파를 포함하지 않는다.
용어 "포함하는(including)", "포함하는(comprising)" 또는 이들의 임의의 다른 변형어는, 프로세스, 방법, 일련의 요소를 포함하는 상품(commodity) 또는 디바이스가 이들 요소를 포함할 뿐만 아니라, 명확하게 열거되지 않은 다른 요소를 또한 포함하도록, 또는 프로세스, 방법, 상품 또는 디바이스에 내재하는 요소를 더 포함하도록, 비배타적인 포함을 포괄하도록 의도된다는 것을 또한 유의해야 한다. 추가적인 제한이 없는 경우, 구문 "---하는 것을 포함하는(comprising one ...)"에 의해 정의되는 요소는, 정의된 요소를 포함하는 프로세스, 방법, 상품, 또는 디바이스에서 추가 추가적인 유사한 요소를 배제하지는 않는다.
상기에서 설명되는 본 출원의 실시형태는 단지 예시적인 것에 불과하며 본 출원을 제한하도록 사용되지는 않는다. 기술 분야의 숙련된 자에게, 본 출원은 다양한 방식으로 수정 또는 변경될 수도 있다. 본 출원의 취지 및 원리 내에서 이루어진 임의의 수정, 동등한 대체 또는 향상은 본 출원의 청구범위의 범위 내에 속할 것이다.

Claims (10)

  1. 랜덤 문자열(random character string)을 생성하기 위한 방법으로서,
    데이터베이스에서 시퀀스 숫자 변수(sequence number variable)의 값을 획득하는 단계로서, 상기 시퀀스 변수의 상기 값은 미리 결정된 기본 숫자 세트로부터의 기본 숫자를 포함하는 시퀀스이고, 상기 시퀀스 변수의 현재 획득된 값은 임의의 다른 시간에 획득되는 상기 시퀀스 변수의 값과는 상이한, 상기 시퀀스 변수의 값을 획득하는 단계; 및
    문자 세트에 포함되는 문자와 상기 기본 숫자 세트에 포함되는 상기 기본 숫자 사이의 미리 설정된 일대일 매핑 관계에 따른 생성된 랜덤 문자열로서의 문자열로 상기 시퀀스를 매핑하는 단계를 포함하는, 랜덤 문자열을 생성하기 위한 방법.
  2. 제1항에 있어서, 상기 데이터베이스에서 시퀀스 변수의 값을 획득하는 단계는,
    랜덤 문자열을 생성하기 위한 요청을 수신하는 단계;
    상기 생성 요청의 타입에 따라, 상기 데이터베이스 내의 적어도 하나의 시퀀스 변수로부터 상기 타입에 대응하는 미리 설정된 시퀀스 변수를 결정하는 단계; 및
    상기 타입에 대응하는 상기 시퀀스 변수의 값을 획득하는 단계로서, 상기 시퀀스 변수의 상기 현재 획득된 값은, 임의의 다른 시간에 획득되는 상기 타입에 대응하는 상기 시퀀스 변수의 값과는 상이한, 상기 시퀀스 변수의 값을 획득하는 단계를 포함하는, 랜덤 문자열을 생성하기 위한 방법.
  3. 제1항에 있어서, 상기 문자 세트에 포함되는 상기 문자의 수가 N인 경우, 상기 미리 결정된 기본 숫자 세트는, 정수 0 내지 N-1의 상기 기본 숫자를 포함하는, 기수 N진법(base N numeral system)에 대응하는 기본 숫자 세트이고, N은 2 이상의 정수이며; 그리고
    상기 데이터베이스에서 시퀀스 변수의 값을 획득하는 단계로서, 상기 시퀀스 변수의 값이 미리 결정된 기본 숫자 세트로부터의 기본 숫자를 포함하는 시퀀스인, 상기 시퀀스 변수의 값을 획득하는 단계는,
    상기 데이터베이스에서 상기 시퀀스 변수의 상기 값을 획득하는 단계; 및
    상기 시퀀스 변수의 상기 획득된 값이 기수 N의 숫자(base-N number)가 아니다는 것을 결정하는 것에 응답하여, 상기 시퀀스 변수의 상기 값을 상기 기수 N의 숫자로 변환하는 단계를 포함하되, 상기 기수 N의 숫자는 상기 기수 N진법에 대응하는 상기 기본 숫자 세트 내의 상기 기본 숫자를 포함하는 시퀀스인, 랜덤 문자열을 생성하기 위한 방법.
  4. 제1항에 있어서, 상기 시퀀스를 문자열로 매핑하는 단계는,
    상기 시퀀스 내의 각각의 기본 숫자를, 상기 문자 세트에 포함되며 상기 기본 숫자로 매핑되는 문자로 변환하는 단계; 및
    변환 이후의 상기 시퀀스 내의 상기 변환된 문자의 시퀀스에 따라, 상기 문자를 직렬로 연결하여 문자열을 형성하는 단계를 포함하는, 랜덤 문자열을 생성하기 위한 방법.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 시퀀스 변수의 값을 획득하는 단계는,
    상기 시퀀스 변수의 자동 증가를 허용하고, 그 다음 상기 시퀀스 변수의 상기 값을 획득하는 명령어를 사용하는 것에 의해 상기 시퀀스 변수의 상기 값을 획득하는 단계를 포함하는, 랜덤 문자열을 생성하기 위한 방법.
  6. 랜덤 문자열을 생성하기 위한 장치로서,
    데이터베이스에서 시퀀스 숫자 변수의 값을 획득하도록 구성되는 획득 모듈로서, 상기 시퀀스 변수의 상기 값은 미리 결정된 기본 숫자 세트로부터의 기본 숫자를 포함하는 시퀀스이고, 상기 시퀀스 변수의 현재 획득된 값은 임의의 다른 시간에 획득되는 상기 시퀀스 변수의 값과는 상이한, 상기 획득 모듈; 및
    문자 세트에 포함되는 문자와 상기 기본 숫자 세트에 포함되는 상기 기본 숫자 사이의 미리 설정된 일대일 매핑 관계에 따른 생성된 랜덤 문자열로서의 문자열로 상기 시퀀스를 매핑하도록 구성되는 생성 모듈을 포함하는, 랜덤 문자열을 생성하기 위한 장치.
  7. 제6항에 있어서, 상기 획득 모듈은, 랜덤 문자열을 생성하기 위한 요청을 수신하도록; 상기 생성 요청의 타입에 따라, 상기 데이터베이스 내의 적어도 하나의 시퀀스 변수로부터 상기 타입에 대응하는 미리 설정된 시퀀스 변수를 결정하도록; 그리고 상기 타입에 대응하는 상기 시퀀스 변수의 값을 획득하도록 구성되고, 상기 시퀀스 변수의 현재 획득된 값은 임의의 다른 시간에 획득되는 상기 타입에 대응하는 상기 시퀀스 변수의 값과는 상이한, 랜덤 문자열을 생성하기 위한 장치.
  8. 제6항에 있어서, 상기 문자 세트에 포함되는 상기 문자의 수가 N인 경우, 상기 미리 결정된 기본 숫자 세트는, 정수 0 내지 N-1의 상기 기본 숫자를 포함하는, 기수 N진법에 대응하는 기본 숫자 세트이고, N은 2 이상의 정수이며; 그리고
    상기 획득 모듈은, 상기 데이터베이스에서 상기 시퀀스 변수의 상기 값을 획득하도록; 그리고 상기 시퀀스 변수의 상기 획득된 값이 기수 N의 숫자가 아니다는 것을 결정하는 것에 응답하여, 상기 시퀀스 변수의 상기 값을 상기 기수 N의 숫자로 변환하도록 구성되되, 상기 기수 N의 숫자는 상기 기수 N진법에 대응하는 상기 기본 숫자 세트 내의 상기 기본 숫자를 포함하는 시퀀스인, 랜덤 문자열을 생성하기 위한 장치.
  9. 제6항에 있어서, 상기 생성 모듈은, 상기 시퀀스 내의 각각의 기본 숫자를, 상기 문자 세트에 포함되며 상기 기본 숫자로 매핑되는 문자로 변환하도록; 그리고 변환 이후 상기 시퀀스 내의 상기 변환된 문자의 시퀀스에 따라, 상기 문자를 직렬로 연결하여 문자열을 형성하도록 구성되는, 랜덤 문자열을 생성하기 위한 장치.
  10. 제6항 내지 제8항 중 어느 한 항에 있어서, 상기 획득 모듈은, 상기 시퀀스 변수의 자동 증가를 허용하고, 그 다음 상기 시퀀스 변수의 값을 획득하는 명령어를 사용하는 것에 의해 상기 시퀀스 변수의 상기 값을 획득하도록 구성되는, 랜덤 문자열을 생성하기 위한 장치.
KR1020187018758A 2015-12-07 2016-12-01 랜덤 문자열을 생성하기 위한 방법 및 장치 KR102111871B1 (ko)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
KR20180088895A true KR20180088895A (ko) 2018-08-07
KR102111871B1 KR102111871B1 (ko) 2020-05-18

Family

ID=59013677

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187018758A KR102111871B1 (ko) 2015-12-07 2016-12-01 랜덤 문자열을 생성하기 위한 방법 및 장치

Country Status (10)

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

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文件中变量的处理方法、装置和存储介质
CN113744013A (zh) * 2020-09-28 2021-12-03 北京沃东天骏信息技术有限公司 订单号的生成方法、装置、服务器及存储介质
CN112835555A (zh) * 2021-01-22 2021-05-25 广东智源机器人科技有限公司 随机数生成方法、装置和设备
CN114995799B (zh) * 2022-07-18 2022-10-25 新华三半导体技术有限公司 一种汇编代码生成方法、装置及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004514996A (ja) * 2000-11-30 2004-05-20 インターナショナル・ビジネス・マシーンズ・コーポレーション ウェブサイトのための安全なセッション管理および認証
CN101976241A (zh) * 2010-09-26 2011-02-16 用友软件股份有限公司 识别码生成方法和系统
CN103020268A (zh) * 2012-12-26 2013-04-03 大唐软件技术股份有限公司 关系型数据库序列号应用方法和系统
WO2014134447A1 (en) * 2013-02-28 2014-09-04 Amazon Technologies, Inc. Configurable-quality random data service
CN104363584A (zh) * 2014-11-27 2015-02-18 宇龙计算机通信科技(深圳)有限公司 一种短消息加、解密的方法、装置及终端

Family Cites Families (20)

* 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
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
CN103430226B (zh) * 2011-03-14 2016-03-30 三菱电机株式会社 字符串配置装置
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 北京思特奇信息技术股份有限公司 一种流水号生成器的实现方法
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004514996A (ja) * 2000-11-30 2004-05-20 インターナショナル・ビジネス・マシーンズ・コーポレーション ウェブサイトのための安全なセッション管理および認証
CN101976241A (zh) * 2010-09-26 2011-02-16 用友软件股份有限公司 识别码生成方法和系统
CN103020268A (zh) * 2012-12-26 2013-04-03 大唐软件技术股份有限公司 关系型数据库序列号应用方法和系统
WO2014134447A1 (en) * 2013-02-28 2014-09-04 Amazon Technologies, Inc. Configurable-quality random data service
CN104363584A (zh) * 2014-11-27 2015-02-18 宇龙计算机通信科技(深圳)有限公司 一种短消息加、解密的方法、装置及终端

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102111871B1 (ko) 랜덤 문자열을 생성하기 위한 방법 및 장치
US10698885B2 (en) Method and device for writing service data in block chain system
US11159305B2 (en) Homomorphic data decryption method and apparatus for implementing privacy protection
CN109040341B (zh) 智能合约地址的生成方法、装置、计算机设备及可读存储介质
CN109614823B (zh) 一种数据的处理方法、装置及设备
US10445334B1 (en) Query transmission in type-limited interchange formats
US20190034833A1 (en) Model Training Method and Apparatus
CN108599973B (zh) 一种日志关联方法、装置及设备
CN104601681A (zh) 一种文件分片的处理方法和装置
CN109344268A (zh) 图形数据库写入的方法、电子设备及计算机可读存储介质
CN111159278B (zh) 数据展示方法及装置、电子设备和计算机可读存储介质
CN114138231B (zh) 执行矩阵乘法运算的方法、电路及soc
CN107276998B (zh) 一种基于OpenSSL的性能优化方法及装置
CN112749157A (zh) 数据表的处理方法、装置、存储介质和设备
US20230179401A1 (en) Data validation techniques for sensitive data migration across multiple platforms
CN109032804B (zh) 数据处理方法和装置、服务器
CN105930521A (zh) 一种数据库管理装置和方法
CN111047415A (zh) 服饰配件订单处理方法、系统、电子设备及存储介质
US11914564B1 (en) Merkle tree-based data management method and apparatus
CN111158584B (zh) 基于泛在电力物联网的配网施工安全质量管控平台大数据存储方法及系统
CN116431630A (zh) 一种基于隐私计算的数据处理方法及相关设备
CN112818367A (zh) 文件的加密方法、装置、存储介质及处理器
CN117424698A (zh) 大规模单向散列值的存储方法及装置
CN115114375A (zh) 基于区块链的数据存储方法、装置、电子设备及存储介质
CN117763027A (zh) 数据处理方法、装置、计算机设备、存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant