[PHP] openssl_random_pseudo_bytes 関数と Base64_encode 関数を使用してランダムな文字列を生成する
[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>
この関数は非常に多用途であり、ビジネス ニーズに応じて適切に変更して、静的メソッドとして呼び出すことができます。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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() 関数は、ランダムな倍精度浮動小数点数を生成するために使用されます。 Random クラスを使用する前に、まず java.util パッケージをインポートする必要があります。次に、Random オブジェクトを作成し、nextDouble() 関数を使用します。

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