ホームページ >バックエンド開発 >PHPチュートリアル >PHP で検証リンク用に安全なランダムな英数字文字列を生成するにはどうすればよいですか?

PHP で検証リンク用に安全なランダムな英数字文字列を生成するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-22 21:47:18417ブラウズ

How to Generate Secure Random Alphanumeric Strings for Verification Links in PHP?

PHP で検証リンク用にランダムで一意の英数字文字列を生成する

Web サイトに登録すると、リンクが含まれた電子メールを受け取ることがよくあります。アカウントを確認するため。このリンクの信頼性を確保するには、一意のランダムな文字列が必要です。 PHP でこのような文字列を生成する方法は次のとおりです。

PHP 7 標準ライブラリの使用 (推奨)

PHP 7 では、暗号的に安全な擬似文字列を生成するためにrandom_bytes($length) 関数が導入されました。 -ランダムバイト。

$bytes = random_bytes(20);
var_dump(bin2hex($bytes));

PHP 5 (古い)

古い PHP バージョンの場合は、長さ = $bytes * 2 のランダムな英数字文字列を生成する bin2hex(openssl_random_pseudo_bytes($bytes)) を使用します。

強化された暗号化による安全性関数

次の関数はすべてのセキュリティ基準を満たしています:

function getToken($length)
{
    $token = "";
    $codeAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    $max = strlen($codeAlphabet);

    for ($i = 0; $i < $length; $i++) {
        $token .= $codeAlphabet[crypto_rand_secure(0, $max - 1)];
    }

    return $token;
}

crypto_rand_secure($min, $max) は openssl_random_pseudo_bytes を使用して $min と $max の間の乱数を生成します。 getToken($length) はカスタム アルファベットを作成し、長さ $length の文字列を生成します。

結論

これらの関数を使用すると、堅牢なランダムで一意の文字列を生成できます。検証リンクやパスワード取得トークンなど、さまざまなセキュリティ関連の目的。

以上がPHP で検証リンク用に安全なランダムな英数字文字列を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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