プログラミング、フリーダイビング、ブロックチェーンのブログ

プログラミング道場

【PHP入門】ランダムな数値や文字列を生成する方法

投稿日:

記事の内容


この記事では、ランダムな数値や文字列を生成する方法を紹介します。
rand、random_int、mt_rand、array_rand、str_shuffle、uniqidといった関数を使います。
また、乱数ではありませんがhash値を求める方法も紹介します。
PHPのバージョンは、7系です。

rand関数

rand関数は、乱数を生成する関数です。
ただし、いくつかの注意事項があります。

  • PHP7.1.0以降、rand()はmt_rand()のエイリアスなので同じ関数です。
  • この関数が生成する値は、暗号学的に安全ではありません

random_int関数

暗号学的に安全な乱数を生成します。

mt_rand関数

mt_rand関数は、乱数を生成する関数です。
ただし、いくつかの注意事項があります。

  • PHP7.1.0以降、rand()はmt_rand()のエイリアスなので同じ関数です。
  • この関数が生成する値は、暗号学的に安全ではありません

array_rand関数

一つ以上のランダムな値を配列から取り出し、 取り出した値のキーを返します。
引数を指定すれば、複数の値を取り出すこともできます。

str_shuffle関数

文字列をランダムにシャッフルする関数です。
暗号学的に安全ではありません。

uniqid関数

一意なIDを生成します。
ただし、一意なIDを生成することを保証はしません。
一応、引数を指定することで一意性を高めることができます。
暗号学的に安全ではありません。

hash関数

hashとは、ある値を入れた時に生成される文字列です。
ここでは、SHA-256というアルゴリズムを使います。
乱数とは違って、ある値、例えば「a」という値から生成されるhash値は常に同じです。
同様に、「1」という値から生成されるhash値も常に同じです。

hash関数は、パスワードをデータベースに入れる時などに、よく使われます。
複合(元に戻すこと)は事実上、不可能なので暗号化とは別物です。

まとめ

この記事では、様々な乱数やランダムな文字列の生成方法とhash関数について紹介しました。

Good luck for your engineer life!

PHPをより詳しく勉強したい人は、この記事を読んで下さい

PHPの学習でオススメの本と動画【2020年最新】

初心者向け【入門編】 いちばんやさしい PHP の教本 「いちばんやさしいシリーズ」のPHP版です。 とりあえず、PHPをさわって動かしてみたいという人には、オススメの本です。 WordPress 仕事の現場でサッと使える! PHPの勉強で ...

続きを見る


30代からプログラミングを始めようか迷っている人は、この記事を読んで下さい

30代からプログラミングを始めることは可能なのか?【頑張ればギリギリセーフ】

エンジニアは人気の職種だと聞いていますが、若い人達が多い印象です。 30代から始めても間にあいますか? 2030年には79万人のエンジニアが不足 まずは、今後、10年間以上に渡るエンジニアの需給について確認しましょう。 自分の身を預けたいと ...

続きを見る


プログラミングスクールに行くか迷っている人は、この記事を読んで下さい

なんとなく、エンジニアになりたい人が無料のプログラミングスクールに行くべき理由【2019年12月の最新】

有料や無料のプログラミングスクールが多すぎて、どこにしようか迷っています。 無料のプログラミングスクールは、お得そうに見えますが、実際の所はどうですか? メリットやデメリットなどがあれば教えて下さい。 無料のスクールを推す理由 まずは、私が ...

続きを見る


自分がプログラミングスクールに行っても大丈夫か知りたい人は、この記事を読んで下さい

プログラミングスクールに通って挫折する人と上手くいく人の違い

スクールに通っている人の3パターン プログラミングスクールに通っている人のパターンを整理すると、以下の3パターンに分かれます。 それぞれのタイプの特徴を、もう少し詳細に説明していきます。 それぞれのタイプの特徴 大した努力をせずに文句ばかり ...

続きを見る


ゼロからWebエンジニアになりたい人は、この記事を読んで下さい

ゼロからWebエンジニアとして就職する方法【何もない自分に積み上げていく】

ちまたには、「エンジニアになるための情報」で溢れかえっています。 ジョージさんが考える「Webエンジニアになる方法」を教えて下さい。 私が定義するWebエンジニア まず、最初に以下の図を見て下さい。 これが、Web業界で働く人達の大分類です ...

続きを見る


独学で実務っぽい経験を積みたい人は、この記事を読んで下さい

エンジニアが独学で実務経験っぽいことを学ぶ方法

エンジニアとして就職するためには実務経験が大事だと聞いていますが、就職しないことには実務経験を積むことができません。 どうやって、最初の実務経験を積んだらいいでしょうか? スクールの理想と現実 これからプログラミングを学ぼうとしている人が描 ...

続きを見る

関連コンテンツ

-PHP, プログラミング

Copyright© プログラミング道場 , 2020 All Rights Reserved Powered by AFFINGER4.