ホームページ  >  記事  >  バックエンド開発  >  PHPでランダムな文字列を生成するにはどうすればよいですか?ハッシュ関数を使う

PHPでランダムな文字列を生成するにはどうすればよいですか?ハッシュ関数を使う

青灯夜游
青灯夜游オリジナル
2018-12-25 17:53:244962ブラウズ

PHP はどのようにしてランダムな文字列を生成するのでしょうか?この記事では、PHP が rand() 関数と hash 関数を使用してランダムな文字列を生成する方法について、具体的な内容から説明します。

PHPでランダムな文字列を生成するにはどうすればよいですか?ハッシュ関数を使う

PHP には、md5()、sha1()、hash() など、特定のアルゴリズム (Hash ) に従って文字列をハッシュするために使用できる関数がいくつかあります。対処する。ハッシュ関数は文字列を引数として受け取り、ハッシュされた文字列を返すことができます。

まず、rand() 関数とハッシュ関数が単純なハッシュ関数を通じてランダムな文字列を生成する方法を見てみましょう。

<?php 
header("content-type:text/html;charset=utf-8"); 
echo "PHP生成随机字符串:<br><br>";
$str=rand(); 
$md5=md5($str); 
$sha1=sha1($str);
$hash=hash(&#39;gost&#39;,$str);

echo "md5()函数:<br>"; 
echo $md5; 
echo "<br><br>"; 

echo "sha1()函数<br>"; 
echo $sha1; 
echo "<br><br>"; 

echo "hash()函数<br>"; 
echo $hash; 
echo "<br><br>"; 
?>

レンダリング:

PHPでランダムな文字列を生成するにはどうすればよいですか?ハッシュ関数を使う

ページを継続的に更新すると、出力文字列が異なり、動的効果:

PHPでランダムな文字列を生成するにはどうすればよいですか?ハッシュ関数を使う

使用する php 関数を紹介します。

rand() 関数: 整数をランダムに生成でき、同時に 2 つのパラメータ (最小値、最大値) を受け入れて、ランダムな範囲を制限できます。

md5() 関数: 文字列パラメーターで MD5 アルゴリズムを処理し、MD5 ハッシュを返します。これには 2 つのパラメータがあります。

$文字列パラメータ: 必要な値、計算が必要な文字列です。

$raw パラメータ: オプションの値、出力形式を定義します。可能な値は次のとおりです: TRUE - 元の 16 文字のバイナリ形式を出力; FALSE - 32 文字の 16 進数を出力、デフォルト値。

sha1() 関数: 文字列パラメータに対して American Secure Hash アルゴリズム 1 を実行し、SHA-1 ハッシュを返します。

これには 2 つのパラメータもあります (md5() 関数を参照してください。$raw パラメータの TRUE 値は元の 20 文字のバイナリ形式を出力し、FALSE 値は 40 文字の 16 進数を出力します)

hash() 関数: 文字列パラメータに対して特別なアルゴリズム処理を実行し、ハッシュ文字列を返します。

これには、次のように最大 3 つのパラメータが必要です。

$algo パラメータ: 必須の値。使用する必要があるハッシュ アルゴリズムを定義します。 PHP には合計 46 のハッシュ アルゴリズムが登録されており、その中で「sha1」、「sha256」、「md5」、「haval160,4」が最も一般的なアルゴリズムです。

$文字列パラメータ: 必須の値。ハッシュする必要がある文字列を定義します。

$getRawOutput パラメータ: オプションのパラメータで、出力形式を定義します。 TRUE 値は、関数が生のバイナリ形式でハッシュ値を返すことを示し、FALSE 値は、関数が小文字の 16 進文字のシーケンスでハッシュ値を返すことを示します。

要約: 以上がこの記事の全内容です。皆さんの学習に役立つことを願っています。

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

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