ホームページ > バックエンド開発 > PHPチュートリアル > [PHP] openssl_random_pseudo_bytes 関数と Base64_encode 関数を利用してランダムな文字列を生成する

[PHP] openssl_random_pseudo_bytes 関数と Base64_encode 関数を利用してランダムな文字列を生成する

WBOY
リリース: 2016-06-23 13:36:59
オリジナル
1216 人が閲覧しました

openssl_random_pseudo_bytes 関数自体は、指定された数のランダムなバイトを生成するために使用されるため、この関数を使用してランダムな文字列を生成する場合は、base64_encode 関数も使用する必要があります。以下に示すように:

public static function getRandomString($length = 42) {        /* * Use OpenSSL (if available) */        if (function_exists('openssl_random_pseudo_bytes')) {            $bytes = openssl_random_pseudo_bytes($length * 2);            if ($bytes === false)                throw new RuntimeException('Unable to generate a random string');            return substr(str_replace(['/', '+', '='], '', base64_encode($bytes)), 0, $length);        }        $pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';        return substr(str_shuffle(str_repeat($pool, 5)), 0, $length);    }
ログイン後にコピー

base64_encode 関数を呼び出した後、ランダムに生成された文字列内の不要な文字を削除するために、結果に対して置換操作も実行されます。

もちろん、openssl_random_pseudo_bytes 関数を使用する前に、function_exists を使用して、関数が実行時に利用可能であることを確認することが最善です。利用できない場合は、プラン B を使用してください:

substr(str_shuffle(str_repeat($pool, 5)), 0, $length);
ログイン後にコピー

この関数は非常に多用途であり、ビジネス ニーズに応じて適切に変更して、静的メソッドとして呼び出すことができます。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート