PHP を使用して、ランダムで一意の英数字文字列を生成します。
例:
EA070 aBX32gTf
方法 1:
最初の方法が最も理解しやすいです。これは次のように実装できます:
- 可能なすべての文字を文字列に格納します。
- 0 から文字列長 - 1 までのランダムなインデックスを生成します。
- そのインデックスに文字を印刷します。
- このステップを n 回実行します (n は目的の文字列の長さです)。
プログラム コードは次のとおりです。
<?php $n=10; function getName($n) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $randomString = ''; 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 サイトの他の関連記事を参照してください。