ホーム > PHP関数リファレンス > 文字列系 > php crypt 文字列をハッシュ化する(一方向)
UPDATE:2019年11月10日

php crypt 文字列をハッシュ化する(一方向)

php crypt 文字列をハッシュ化する(一方向) | wepicks!
PHP4 PHP5 PHP7


php crypt 文字列をハッシュ化する(一方向)

crypt() 書式
string ハッシュ化文字列 = crypt('string $str' [, 'string $salt']);
//[ ]省略可
//返り値は文字列(string)

説明入力文字列をハッシュ化してハッシュ値を返します。
引数string $strハッシュ値に変換する入力文字列
返り値string ハッシュ化文字列ハッシュ値の文字列が帰ります。PHPが動作しているシステム上のアルゴリズムが使用可。

サンプル

ハッシュ(hash) は、「細切れ」「寄せ集め」という意味があります。ハッシュ値は、データが固定長のランダムな値に変換された値です。例えば、メールの送信メッセージの文字列をハッシュ値に変換し、元のメッセージと送信後のメッセージのハッシュ値を比較し、改竄の有無を確認するなどで使用します。ハッシュ値は非常に少ないビット数となるので、全文比較するより効率的で便利です。
ソルト(string $salt) は、パスワードやパスフレーズを生成し、ハッシュ化する際に加えるランダムなデータのことです。ソルトはハッシュ化毎にランダムに生成し、ハッシュ値とともにソルトもデータベースなどに保存することで、平分パスワードのまま保存されることを防ぎ、セキュリティーの向上を図ります。

◆ 引数 や 返り値 のデータ型の説明

データ型 引数 や 返り値 のデータ型の説明
引数 や 返り値内容(引数 | 返り値)
string文字列型 を受け入れる。 | 文字列型 を返す。
int整数型 を受け入れる。 | 整数型 を返す。
float浮動小数点数型 を受け入れる。 | 浮動小数点数型 を返す。
bool論理型 を受け入れる。 | 論理型 を返す。
number整数型 または 浮動小数点数型 を受け入れる。 | 整数型 または 浮動小数点数型 を返す。
array配列型 を受け入れる。 | 配列型 を返す。
objectオブジェクト型 を受け入れる。 | オブジェクト型 を返す。
array|object配列型 または オブジェクト型 を受け入れる。 | 配列型 または オブジェクト型 を返す。
mixed複数の データ型 を受け入れる(パラメーター)、或いは、返す(返り値)ことが可能。全てのデータ型ではありません。例えば gettype()関数 は全ての型を受け入れますが、一方、str_replace()関数 は、文字列型 と 配列型 のみを受け入れます。また、reset()関数 や end()関数 は、返り値に 配列型 と 論理型(FALSE)を返します。
voidパラメータ一覧で void が使用されている場合、その関数がパラメータを受け付けないことを表します。 | 返り値の型が void である場合、返り値に意味がないことを表します。
callbackcallback 疑似型がこのドキュメントで使われていたのは、PHP 5.4 で callable タイプヒントが導入される前のことでした。両者はまったく同じ意味です。

◆ crypt() 内容

文字列をハッシュ化する

文字列のハッシュ値を返します。ハッシュ化のアルゴリズムは、UNIX標準の DES ベースか、PHPが動作しているシステム上で使えるアルゴリズムが使用出来ます。ハッシュ方式のサポートの有無を確認するには、次の定数が 0 か 1 で確認します。

  • CRYPT_STD_DES – 標準の DES ベースのハッシュです。
  • CRYPT_EXT_DES – 拡張した DES ベースのハッシュです。
  • CRYPT_MD5 – $1$ ではじまる 12 文字の salt を使用する MD5 ハッシュです。
  • CRYPT_BLOWFISH – Blowfish ハッシュです。
  • CRYPT_SHA256 – SHA-256 ハッシュに $5$ で始まる 16 文字の salt を組み合わせたもの。
  • CRYPT_SHA512 – SHA-512 ハッシュに $6$ で始まる 16 文字の salt を組み合わせたもの。

string $salt パラメータは必須ではありませんが、強いハッシュ値を生成するのに必要です。ソルトを指定して、セキュリティの向上を図りましょう。省略してしまうと、crypt() が生成するハッシュ値が脆弱になります。PHP 5.6 以降は、このパラメータを省略した場合に E_NOTICE が発生するようになりました。

※crypt() で生成したハッシュ値は、単方向アルゴリズムで生成されるために復号できません。

◆ crypt() パラメーター

パラメーター内容
string $strハッシュしたい文字列を指定します。
string $saltハッシュのもととなる salt 文字列を指定します。

mixed $needle および string $haystack は大文字小文字を区別せずに評価されます。

◆ crypt() 返り値

string | FALSE
ハッシュ化された文字列を返します。

string 文字列型 や FALSE 論理型 を返します。

◆ crypt() 変更履歴

PHPバージョン変更内容
PHP 5.3.0オプションの bool $before_needle パラメーターが追加されました。
PHP 4.3.0crypt() がバイナリセーフに変更されました。

php crypt() サンプル

– サンプル Click Here ! –

実行結果
Standard DES :[.RsCo/lZMfUy6]
Extended DES : [ARDLKOQHXjVH2]
MD5 : [+mgHxiW9agIw.]
Blowfish : [-sCNw3yQQE9AM]
SHA-256 : [WHRp4K8.gVmRs]
SHA-512 : [M~Oeh7YE1HUQQ]

タグ(=記事関連ワード)

タグ: , ,

日付

投稿日:2019年7月2日
最終更新日:2019年11月10日

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

https://wepicks.net/phpfunction-string-crypt/trackback/

page top