PHPでランダムな文字列を生成する方法[例を使用]

公開: 2020-11-24

PHPは、発売当時、 PersonalizedHomePageの略でした。 そして、その進化の旅は、業界にPHP:Hypertext PreProcessorとしての代替的でより受け入れられる(再帰的)定義を与えましたが、 PHPについての真実は、それでも何よりもパーソナライズの精神を吸収しているということです。

現在、PHPは、MicrosoftのASP(Active Server Pages)など、他のすべての主要なサーバー構成言語に代わる、最も好まれている無料のオープンソースの言語です。 このパーソナライズの側面の大部分は、サーバー側にPHPインタープリターが存在することによって引き継がれます。これは、モジュールデーモン、または実行可能ファイルいずれかとして実装できます

PHPインターフェースは、UID(一意の識別子)、電子メールアドレス、ユーザー名、パスワード、機密の連絡先情報など、ユーザー中心の重要なデータの管理に役立ちます。

すべてではないにしても、世界をリードする動的コンテンツ管理システム(CMSの巨大なWordPressを含む)の多くは、PHPベースのプラットフォームであり、PHPでアクセス可能なデータベースの形式でユーザーレコードとコンテンツレコードの両方を簡単に作成および保守できます。 。

この記事では、管理者側とユーザー側の両方からの介入を最小限に抑えて、管理者が新しい「ユーザー」を作成するために必要なすべての必須フィールドに簡単に入力できるようにするPHPの特定の側面について説明します。 。 これを行うには、管理者はPHPのランダムな文字列を生成する方法を学ぶ必要があります。これについて説明します。

読む: PHPプロジェクトのアイデアとトピック

目次

PHPランダム文字列とは何ですか?

PHPランダム文字列は、ファイル名、ランダムURL拡張子、パスワード、または認証トークン(一般的なAPIトークンやFacebookのアプリ開発インターフェースに見られるAPIシークレット)。

頻繁なブロガー、特にMediumなどのプラットフォームを使用して作品を公開しているブロガーは、新しいストーリーや投稿を公開するたびに、このランダムな文字列生成の動作を確認します。ベースドメインに続くURL拡張子は、通常、パブリッシングインターフェイスによって生成される任意の文字列。

たとえば、URL https://medium.com/neli/shiring-revealing-the-best-kept-secret-of-ancient-indian-meditation- c37d87e3386bでは、URLの最後の部分(c37d87e3386b)はランダムです。生成された文字列 PHPランダム文字列の他の簡単で重要な参照には、WordPressのすべての新しいユーザーアカウントに対して生成される「デフォルト」パスワードが含まれます。

消費者向けインターネットプラットフォームの大多数は、「マジックリンク」サインインを有効にするために暗号化の力を活用するためにPHPランダム文字列の使用にシフトしています。 「マジックリンク」サインインを使用するクラウドベースのサービスを使用したことがある場合は、PHPランダム文字列の生成とマッピングで提供されるセキュリティの容易さ、効率、および強化されたレイヤーに既に精通しています。

PHPランダム文字列を生成する方法は?

手元のタスクは、PHPを使用してランダム、英数字、および一意の文字列を生成するコードを作成することです。 これを実現するには、次の4つの方法があります。

  1. ブルートフォース(ランダムインデックス)を使用する–これは、PHPランダム文字列を実現するための最も簡単でありながら、大雑把な方法です。
  2. ハッシュ」関数を使用する(PHPランダム文字列のアルゴリズム生成–これはブルートフォースを使用する場合と比較して少しインテリジェントなアプローチです)
  3. 組み込みのuniqid()関数を使用する(これは簡単で、組み込みのPHP機能を利用して要素の一意の識別子を生成します)
  4. random_bytes()に続いてbin2hex ()を使用することにより、彼は暗号的に安全なランダムバイトを生成し、オンライン宝くじ、オンラインポーカーゲーム、およびコアに組み込まれた真のランダム化によるリアルタイムの番号生成を必要とするその他のプラットフォームなどのインターフェイスにすばらしい機能を提供します。

また読む: PHPでのキャリアの機会

ブルートフォースを使用したPHPランダム文字列の生成

PHPでのランダムな文字列生成の力ずくの概念は、理解するのが最も簡単で、実装するのが最も簡単です。 大まかに言って、ブルートフォースアプローチは4つの簡単なステップで説明できます。

  1. 可能なすべての文字をクラブ化し、それらを1つの文字列に入れます(これは、文字列で許可されているすべての文字のサンプルスペースリポジトリです)。
  2. 0(ゼロ)で始まり、文字列の長さ「-1」まで伸びる「ランダムインデックス」を生成します。
  3. 現在のインデックス位置に文字を印刷します。
  4. Xが文字列に必要な文字数(目的の文字列長)である場合は、手順1、2、および3を合計X回繰り返して合計命令ループを作成します。

以下のサンプルコードの実装でわかるように、これはPHPでランダムな文字列を生成する最も簡単な方法です。

サンプルコード:

<?php

$ n = 10;

function getName($ n){

$ characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

$ randomString =”;

for($ i = 0; $ i <$ n; $ i ++){

$ index = rand(0、strlen($ characters)– 1);

$randomString。=$characters [$ index];

}

$randomStringを返します。

}

echo getName($ n);

?>

必読: PHPインタビューの質問と回答

「ハッシュ」関数を使用したPHPランダム文字列の生成

PHPにはmd5 ()、 sha1 ()、 hash ()など、「ハッシュ関数」と呼ばれる関数が組み込まれています。 これらの関数を使用して、「sha1」、「sha256」、「md5」などの特定のアルゴリズムによって定義された文字列を「ハッシュ」することができます。 これらすべての関数で、引数は文字列であり、出力は英数字ハッシュ文字列です(以下のサンプルコードを参照)。

サンプルコード:

<?php

$ str = rand();

$ result = md5($ str);

エコー$result;

?>

組み込みの「uniqid()」関数を使用したPHPランダム文字列の生成

PHPは、パーソナライズツールとしての価値の類似性を保持しており、uniqid()などの特別な組み込み関数を使用して、現在の時刻から派生した「一意のID(UID)」を生成できます。マイクロ秒(「マイクロ時間」とも呼ばれます)。

デフォルトの構文では、uniqid()関数は常に、文字列の長さが13文字の一意の英数字の文字列を返します。 以下のサンプルコードを使用して、uniqid()メソッドの実装をテストできます。

サンプルコード:

<?php

$ result = uniqid();

エコー$result;

?>

random_bytes()およびbin2hex()を使用したPHPランダム文字列の生成

これは、これまでのところ、 「疑似ランダム」バイトを生成し、それらを16進形式に変換して、既存のランダム化に暗号化のレイヤーを追加する、最も進化安全な方法です。

最初のステップは、組み込みのrandom_bytes ()関数を呼び出して、暗号的に安全なランダムバイトを生成することです。 次のステップは、このバイナリデータ(バイト数)を引数として使用するbin2hex ()関数を呼び出し、対応する16進値を出力として生成します。これは、完全に使用可能でこれは、以下のサンプルコードでよりよく説明されています。

サンプルコード:

<?php

$ n = 20;

$ result = bin2hex(random_bytes($ n));

エコー$result;

?>

次は何?

upGradは、PHPを使用したプログラミングと、フルスタック開発のソフトウェア開発スペシャライゼーションにおけるupGradのPGディプロマを備えたプログラミングを提供します フルスタック開発者として浮上し、素晴らしいアプリケーションのいくつかを構築することを学ぶためのプログラム。 これは、ライブプロジェクトと課題に取り組み、15のプログラミング言語とツールのトレーニングを含む12か月の広範なプログラムです。 それに加えて、模擬面接や就職支援など、常にキャリアをサポートしています。

あなたの夢の仕事に着陸

アップグレードとIIIT-フルスタックのバンガロアのPGディプロマ
もっと詳しく知る