phpにおけるハッシュとはアルゴリズムに基づき、読解不可能な文字列などに置換する仕組みのことです。今回はこのハッシュについて紹介します。
ハッシュの基本
ハッシュの種類
| ハッシュ関数 | 詳細 |
| hash | 指定したアルゴリズムで、ハッシュ値を生成する ※バージョン 5.1.2以降 |
| md5 | MD5方式で、16進数・32文字のハッシュ値を生成する |
| sha1 | SHA-1方式で、16進数・40文字のハッシュ値を生成する |
| password_hash | 機密性の高い文字列のハッシュ値を生成する ※バージョン 5.5以降 |
上記4つが代表的なハッシュ関数であり、それぞれの方式でハッシュを作成します。
ハッシュ化
hash(ハッシュ関数の名称, ハッシュ化したい値, TRUE に設定するとバイナリデータの出力)という指定方法で用いることができます。
PHP
var_dump(hash('md5', 'こんにちは'));出力結果
PHP
string(32) 'c0e89a293bd36c7a768e4e9d2c5475a8'ハッシュの種類によって出力値は変わるので他のハッシュも試してみてください。
エンジニアからのアドバイス
パスワードなどの機密情報は、セキュリティ面などを考慮しハッシュ化してデータベースへ保存をするのが一般的です。また、どのハッシュの種類を選ぶかはOS やプログラム言語間の互換性・強度・速度・目的などによって検討をする場合が多いです。
