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

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

Jun 13, 2016 pm 12:17 PM
bytes length openssl random

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

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

<code class="php hljs "><span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getRandomString</span><span class="hljs-params">(<span class="hljs-variable">$length</span> = <span class="hljs-number">42</span>)</span>    {</span>        <span class="hljs-comment">/*         * Use OpenSSL (if available)         */</span>        <span class="hljs-keyword">if</span> (function_exists(<span class="hljs-string">'openssl_random_pseudo_bytes'</span>)) {            <span class="hljs-variable">$bytes</span> = openssl_random_pseudo_bytes(<span class="hljs-variable">$length</span> * <span class="hljs-number">2</span>);            <span class="hljs-keyword">if</span> (<span class="hljs-variable">$bytes</span> === <span class="hljs-keyword">false</span>)                <span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> RuntimeException(<span class="hljs-string">'Unable to generate a random string'</span>);            <span class="hljs-keyword">return</span> substr(str_replace([<span class="hljs-string">'/'</span>, <span class="hljs-string">'+'</span>, <span class="hljs-string">'='</span>], <span class="hljs-string">''</span>, base64_encode(<span class="hljs-variable">$bytes</span>)), <span class="hljs-number">0</span>, <span class="hljs-variable">$length</span>);        }        <span class="hljs-variable">$pool</span> = <span class="hljs-string">'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'</span>;        <span class="hljs-keyword">return</span> substr(str_shuffle(str_repeat(<span class="hljs-variable">$pool</span>, <span class="hljs-number">5</span>)), <span class="hljs-number">0</span>, <span class="hljs-variable">$length</span>);    }</code>
ログイン後にコピー

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

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

<code class="php hljs ">substr(str_shuffle(str_repeat(<span class="hljs-variable">$pool</span>, <span class="hljs-number">5</span>)), <span class="hljs-number">0</span>, <span class="hljs-variable">$length</span>);</code>
ログイン後にコピー

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

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Nginx がより安全な通信のために OpenSSL ライブラリを使用する方法 Nginx がより安全な通信のために OpenSSL ライブラリを使用する方法 Jun 10, 2023 pm 01:51 PM

Nginx は、Web サーバー、ロード バランサー、リバース プロキシ、キャッシュで広く使用されているソフトウェアです。ネットワーク伝送において、データの暗号化とセキュリティに対する注目が高まっています。通信のセキュリティを向上させるために、OpenSSL ライブラリを使用して SSL/TLS プロトコルを実装し、機密データの送信を保護できます。この記事では、Nginx と OpenSSL ライブラリを使用して、より安全な通信を実現する方法について説明します。 OpenSSL ライブラリのインストールと構成 まず、サーバーに OpenSSL ライブラリをインストールする必要があります。作れます

OpenSSL を使用して MySQL SSL 証明書を生成する方法 OpenSSL を使用して MySQL SSL 証明書を生成する方法 Sep 09, 2023 pm 02:12 PM

OpenSSL を使用して MySQL SSL 証明書を生成する方法の紹介: MySQL は広く使用されているリレーショナル データベース システムですが、実際の運用環境では暗号化通信に SSL (SecureSocketsLayer) プロトコルを使用することが非常に重要です。この記事では、OpenSSL ツールを使用して MySQL SSL 証明書を生成する方法を紹介し、対応するコード例を示します。手順: OpenSSL をインストールする: まず、コンピューターに OpenSSL がインストールされていることを確認します。

HWID V 2.2 の手動アクティベーション方法とチュートリアル HWID V 2.2 の手動アクティベーション方法とチュートリアル Oct 20, 2023 pm 07:17 PM

これは手動アクティベーションを実行したいユーザー向けです。これを行うためのツールに関するサポートが必要な場合は、ここを確認してください。手動アクティベーションプロセスは 2 つの部分に分けることができます。 1- 既製のバッチ ファイルから、インターネットが有効になっていることを確認します。管理者として Windows Powershell を開き、次のように入力してコマンドを指定順に一覧表示します。キーを入力します (上記のリストのキーに置き換えます) 次のコマンドを使用します &lt;key&gt;slmgr/ipk&lt;key&gt; ここからユニバーサル チケットをダウンロードし、ダウンロードしたファイルを解凍します。次に、Powershell に次のコードを入力します (Get-ItemProper

CentOS 7 での OpenBLAS インストールおよび CentOS 7 OpenSSL インストール CentOS 7 での OpenBLAS インストールおよび CentOS 7 OpenSSL インストール Feb 10, 2024 am 11:45 AM

オープンソースのオペレーティング システムである LINUX は、幅広いアプリケーションとユーザー グループに利用されており、CentOS7 は LINUX のブランチ バージョンであり、RedHat Enterprise Linux (RHEL) のソース コードに基づいて構築されており、高い安定性とセキュリティを備えています。 CentOS7 にインストールして構成できる OpenBLAS と OpenSSL は、多くの開発者やシステム管理者の共通のニーズです。この記事では、CentOS7 に OpenBLAS と OpenSSL をインストールして構成する方法について詳しく説明します。 OpenBLAS は、BLAS (BasicLinearAlgebraSubprograms) インターフェイスに基づくオープン ソースの高性能数学ライブラリです。

JavaのString.length()関数を使用して文字列の長さを取得します。 JavaのString.length()関数を使用して文字列の長さを取得します。 Jul 25, 2023 am 09:09 AM

文字列の長さを取得するには、Java の String.length() 関数を使用します。Java プログラミングでは、文字列は非常に一般的なデータ型です。多くの場合、文字列の長さ、つまり文字列内の文字数を取得する必要があります。 Java では、String クラスの length() 関数を使用して文字列の長さを取得できます。簡単なコード例を次に示します。 publicclassStringLengthExample{publ

Pythonランダムライブラリのデモの使い方 Pythonランダムライブラリのデモの使い方 May 05, 2023 pm 08:13 PM

Pythonrandom ライブラリの簡単な使用デモ 乱数を生成する必要がある場合、またはシーケンスから要素をランダムに選択する必要がある場合は、Python の組み込みランダム ライブラリを使用できます。以下は、ランダム ライブラリの使用方法を示す注釈付きの例です。 #ランダム ライブラリのインポート importrandom #0 と 1 の間のランダムな 10 進数を生成しますrandom_float=random.random()print(random_float)#指定された範囲内のランダムな 10 進数を生成します Random整数 (エンドポイントを含む) random_int=random.randint(1,10)print(random_int)#

Javaは、RandomクラスのnextDouble()関数を使用してランダムな倍精度浮動小数点数を生成します Javaは、RandomクラスのnextDouble()関数を使用してランダムな倍精度浮動小数点数を生成します Jul 25, 2023 am 09:06 AM

Java は、Random クラスの nextDouble() 関数を使用して、ランダムな倍精度浮動小数点数を生成します。Java の Random クラスは、さまざまな種類の乱数を生成するために使用できる擬似乱数ジェネレーターです。このうち nextDouble() 関数は、ランダムな倍精度浮動小数点数を生成するために使用されます。 Random クラスを使用する前に、まず java.util パッケージをインポートする必要があります。次に、Random オブジェクトを作成し、nextDouble() 関数を使用します。

golangの「unknown: bytes.Split」エラーを解決するにはどうすればよいですか? golangの「unknown: bytes.Split」エラーを解決するにはどうすればよいですか? Jun 25, 2023 pm 02:02 PM

Go 言語の bytes パッケージはバイト型を操作するためのパッケージであり、Split() メソッドなどの便利なメソッドが多数含まれています。ただし、Split() メソッドを使用すると、「未定義: bytes.Split」エラーが発生する可能性があります。このエラーは通常、Go バージョンに互換性がないこと、または必要な依存ライブラリが不足していることが原因で発生します。この記事では、このエラーを解決するいくつかの方法を紹介します。方法 1: 次のように Go バージョンをアップグレードします。

See all articles