ランダムな文字列は、ソフトウェア開発のさまざまな目的で使用されます。 たとえば、ユーザーIDのコーディング、パスワードの生成、アプリケーションでのトークンの作成に使用できます。 ランダムな文字列(または他のタイプの疑似ランダムデータ)を必要とするJavaScriptベースのプログラムを開発している場合は、この記事が役に立ちます。 ご覧のとおり、ランダムな文字(または文字列)の生成は、適切なツールと手法を使用すれば簡単です。 幸いなことに、この記事はまさにそれをカバーしています。 始めましょう…
なぜランダムな文字列が必要なのですか?
ランダムな文字列は、ソフトウェアでトークン、ユーザーID、およびパスワードを作成するために使用されます。 Webアプリケーションのログインシステムを構築したいとします。 ユーザーがログインできるようにするには、各ユーザーに一意のログインIDを割り当てる必要があります。ユーザーIDとして機能する文字のランダムな文字列を作成できます。 同じことが、さまざまなシステムで使用されるユーザートークンにも当てはまります。 ランダムな文字列は、売り上げの創出にも役立ちます。 Saltは、ログインシステムにセキュリティを追加するために使用されるランダムな文字列です。 ハッカーはユーザーごとに固有のソルトを推測する必要があるため、ブルートフォース攻撃やシステムへのログインが困難になります。
JavaScriptでランダムな文字列を生成する方法
このセクションでは、JavaScriptでランダムな文字列を生成できる3つのメソッドについて説明します。
- ランダムな文字列を生成するカスタムメソッドを作成します。
- Math.random()メソッドを使用してランダムな文字列を生成します。
- crypto.getRandomValues()メソッドを使用してランダムな文字列を生成します。
- URNGライブラリを使用してランダムな文字列を生成する–各メソッドについて詳しく説明します。
1.ランダムな文字列を生成するカスタムメソッドを作成します
カスタムメソッドを作成して、ランダムな文字列を生成できます。 ここでは、単語、数字、および特殊文字を定義しました。 このjavascript関数をいつでも呼び出して、ランダムな文字列を生成できます
function genRandonString(length) { var chars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()"; var charLength = chars.length; var result=""; for ( var i = 0; i < length; i++ ) { result += chars.charAt(Math.floor(Math.random() * charLength)); } return result; } console.log(genRandonString(12));
2. Math.random()メソッドを使用してランダムな文字列を生成する
The Math.random()
このメソッドは、0から1までの疑似乱数を返します。このメソッドは、現在の日付と時刻をエントロピーのソースとして使用します。 JavaScriptでは、文字列は2つの二重引用符( “”)で囲まれた一連の文字で表されます。 文字列は単なる文字のシーケンスであるため、Math.random()メソッドを使用してランダムな文字列を生成できます。 Math.random()メソッドを使用してランダムな文字列を作成する基本的な例を見てみましょう。 Math.randomメソッドを使用して文字列を作成するJavaScriptプログラムを作成してみましょう。
var randomString = ""; randomString += Math.random(); randomString += Math.random(); randomString += Math.random(); console.log(randomString);
このプログラムはランダムな文字列を作成し、JavaScriptコンソールに記録します。 下のスクリーンショットでわかるように、文字列は完全にランダムです。
crypto.getRandomValues()メソッドを使用してランダムな文字列を生成する
The crypto.getRandomValues()
メソッドは、暗号化乱数ジェネレーターから疑似乱数シーケンスのバイトを返します。 このメソッドは、JavaScriptCryptoAPIの一部です。 crypto.getRandomValues()メソッドを使用してランダムな文字列を生成する例を見てみましょう。 crypto.getRandomValuesメソッドを使用して文字列を作成するJavaScriptプログラムを作成してみましょう。
var randomString = ""; randomString += crypto.getRandomValues(16).toString(16); console.log(randomString);
このプログラムでは、引数として16を渡すことにより、crypto.getRandomValues()メソッドを使用してランダムな文字列を作成します。 これを行うと、16個のランダムバイトを返すようにメソッドに指示します。 以下のスクリーンショットでこのプログラムの出力を見てみましょう。
URNGライブラリを使用してランダムな文字列を生成する
JavaScriptでランダムデータを生成するために利用できるライブラリがいくつかあります。 そのようなライブラリの1つに、Universal Random Number Generators(URNG)ライブラリがあります。 ライブラリは、npmから、またはバックエンドでJavaScriptを使用している場合はNPMからインストールできます。 URNGライブラリを使用してランダムな文字列を生成する例を見てみましょう。 URNGライブラリを使用して文字列を作成するJavaScriptプログラムを作成してみましょう。
var randomString = ""; randomString += URNG.generateRandomString(15); console.log(randomString);
このプログラムでは、引数として15を渡すことにより、URNGライブラリを使用してランダムな文字列を作成します。 これを行うと、ライブラリに15文字を返すように指示されます。 以下のスクリーンショットでこのプログラムの出力を見てみましょう。
結論
この記事では、JavaScriptでランダムな文字列とそれらを生成するための3つの異なるメソッドが必要な理由について説明しました。 この記事で説明したヒントを要約してみましょう。 まず、ランダム性は不確実性の状態であることを忘れないでください。 言い換えれば、それは一貫したパターンの欠如です。 したがって、予測できないものはすべてランダムと見なされます。 次に、Math.random()を使用して非ランダムデータを生成していないことを確認します。 これは、予測できない数列を生成するように設計されています。 したがって、特定のパターンで数値を生成するために使用しないでください。 最後に、ランダムデータソースを使用して非反復ランダム文字列を生成するソリューションを実装することを忘れないでください。 これを行うことで、各文字列が一意で予測不可能になることが保証されます。
投稿「JavaScriptでランダム文字列を生成する:エッセンシャルガイド」が最初にTecAdminに登場しました。
The post JavaScriptでランダムな文字列を生成する:エッセンシャルガイド appeared first on Gamingsym Japan.