ホームページ  >  記事  >  バックエンド開発  >  PHPを使用してランダムな文字列を生成する方法

PHPを使用してランダムな文字列を生成する方法

藏色散人
藏色散人オリジナル
2019-01-29 15:26:5813643ブラウズ

PHP を使用して、ランダムで一意の英数字文字列を生成します。

PHPを使用してランダムな文字列を生成する方法

例:

EA070
aBX32gTf

方法 1:

最初の方法が最も理解しやすいです。これは次のように実装できます:

- 可能なすべての文字を文字列に格納します。

- 0 から文字列長 - 1 までのランダムなインデックスを生成します。

- そのインデックスに文字を印刷します。

- このステップを n 回実行します (n は目的の文字列の長さです)。

プログラム コードは次のとおりです。

<?php 
$n=10; 
function getName($n) { 
    $characters = &#39;0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ&#39;; 
    $randomString = &#39;&#39;; 
  
    for ($i = 0; $i < $n; $i++) { 
        $index = rand(0, strlen($characters) - 1); 
        $randomString .= $characters[$index]; 
    } 
  
    return $randomString; 
} 
  
echo getName($n); 
?>

出力 1:

3HDrSOvRIs

出力 2:

lipHh

方法 2: ハッシュ関数を使用します

PHP には、md5()、sha1()、hash() などの関数があり、これらを使用して特定のアルゴリズム (「sha1」、「sha256」、「 md5」など)対応していただければと思います。これらの関数はすべて文字列を引数として受け取り、英数字のハッシュ文字列を出力します。

rand() 関数を使用して乱数を生成します。

上記の関数のいずれかを使用してハッシュします。

プログラム 1:

<?php 
$str=rand(); 
$result = md5($str); 
echo $result; 
?>

出力 1:

2e437510c181dd2ae100fc1661a445d4

出力 2:

256394010059991a71ea05e5d859d2be

プログラム 2:

<?php 
$str=rand(); 
$result = sha1($str); 
echo $result; 
?>

出力 1:

6eadd9b2c4389d9b109b3b869f66aab5d8f9420a

出力 2:

ca2d3c0993ab87e842d0a7a01f319aca6c587a87

プログラム3:

<?php 
$str = rand(); 
$result = hash("sha256", $str); 
echo $result; 
?>

出力 1:

2a41cbc8cc11f8c8d0eb54210fe524748b4def1c5b04fcf18c2d5972e24d11c2

出力 2:

291144c1cbba4de0bf199d37ee265ac95cc2e44e80fd2642b22a6e8ef2f42a39

: 上記すべての関数はハッシュ関数であるため、結果の文字列の長さは使用されるアルゴリズムによって常に異なりますが、アルゴリズムによって常に同じになります。したがって、固定長の文字列を生成する場合は、必要に応じて、生成された文字列を切り詰めたり、別の文字列と連結したりできます。

方法 3:

uniqid() 関数を使用します。 PHP の uniqid() 関数は、現在の時刻 (マイクロ秒) に基づいて一意の ID を生成するために使用される組み込み関数です。デフォルトでは、13 文字の長さの一意の文字列を返します。

プログラム:

<?php  
$result = uniqid();   
echo $result; 
?>

出力 1:

5bdd0b74e9a6c

出力 2:

5bdd0bbc200c4

Note: 上記のメソッドはすべて、以下に基づいています。 rand() 関数と uniqid() 関数。これらの関数は、暗号的に安全なランダム ジェネレータではありません。したがって、ランダム性の程度がアプリケーションのセキュリティに影響を与える場合は、これらの方法を避けることをお勧めします。

方法 4:

random_bytes() 関数を使用します。 (暗号的に安全)random_bytes() 関数は、暗号的に安全な擬似ランダム バイトを生成します。これは、後で bin2hex() 関数を使用して 16 進形式に変換できます。

プログラム:

<?php  
$n = 20; 
$result = bin2hex(random_bytes($n)); 
echo $result; 
?>

出力 1:

235aed08a01468f90fa726bd56319fb893967da8

出力 2:

508b84494cdf31bec01566d12a924c75d4baed39

この記事は、PHP でランダムな文字列を生成する方法の紹介です。困っている人たちを助けられることを願っています!

以上がPHPを使用してランダムな文字列を生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。