Quantcast
Channel: 初心者タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 21085

PHP 値のハッシュ化を行う

$
0
0

目的

  • PHPにて任意の値のハッシュ化を行う方法をまとめる

実施環境

  • ハードウェア環境
項目情報
OSmacOS Catalina(10.15.3)
ハードウェアMacBook Pro (16-inch ,2019)
プロセッサ2.6 GHz 6コアIntel Core i7
メモリ16 GB 2667 MHz DDR4
グラフィックスAMD Radeon Pro 5300M 4 GB Intel UHD Graphics 630 1536 MB
  • ソフトウェア環境
項目情報備考
PHP バージョン7.4.3Homwbrewを用いて導入
Laravel バージョン7.0.8commposerを用いて導入
MySQLバージョン8.0.19 for osx10.13 on x86_64Homwbrewを用いて導入
  • 上記環境にてLaravelアプリを作成し、そのアプリ名ディレクトリでコマンド$ php artisan tinkerを実行し動作を確認した。

ハッシュ化のアルゴリズム

アルゴリズム名情報オプション(※の後は備考)
PASSWORD_BCRYPTCRYPT_BLOWFISH アルゴリズムでパスワードハッシュを作成salt (文字列) パスワードのハッシュに使うソルトを手動で設定する。
cost (コスト数) 利用するアルゴリズムのコストを表す。コスト数は数値で指定する。
PASSWORD_ARGON2IArgon2i アルゴリズムでパスワードハッシュを作成memory_cost (メモリバイト数) ハッシュ計算に用いるメモリ最大値 (バイト数)を指定する
time_cost (数値) ハッシュ計算にかける時間の最大値を設定する。
threads (数値) ハッシュ計算に用いるスレッド数を設定する。
※PHP 7.2.0以降で使用可能
PASSWORD_ARGON2IDArgon2id アルゴリズムでパスワードハッシュを作成PASSWORD_ARGON2_DEFAULT_MEMORY_COST (数値) ハッシュ計算に用いるメモリのデフォルト値を設定する。
PASSWORD_ARGON2_DEFAULT_TIME_COST (数値) ハッシュ計算にかける時間のデフォルト値を設定する。
PASSWORD_ARGON2_DEFAULT_THREADS (数値) ハッシュ計算にかけるスレットのデフォルト値を設定する。
※PHP 7.2.0以降で使用可能
PASSWORD_DEFAULT当該PHPのバージョンにて最も強力なハッシュアルゴリズムを使用してパスワードハッシュを作成する※PHPのバージョンアップにてハッシュアルゴリズムが変更になる可能性がある。
ハッシュの長さが変わる可能性がある為、ハッシュの格納先は255文字程度まで格納可能に設定しておくと良い

記載例

  • 下記にハッシュ化を行う際の記載例を書く。

    password_hash(ハッシュ化したい文字列,ハッシュ化する再に用いるアルゴリズム,アルゴリズムのオプション);
  • 文字列「test」という文字列をハッシュ化したい時は下記のように記載する。

    password_hash('test',ハッシュ化する再に用いるアルゴリズム);
  • 変数「$str」に格納されている値をハッシュ化したい時は下記のように記載する。

    password_hash($str,ハッシュ化する再に用いるアルゴリズム);

具体例

  1. 文字列「test」をアルゴリズム「PASSWORD_BCRYPT」でハッシュ化するときは下記のように記載する。

    password_hash('test',PASSWORD_BCRYPT);
  2. 変数「$str」に格納された文字列をアルゴリズム「PASSWORD_ARGON2I」でハッシュ化するときは下記のように記載する。

    password_hash($str,PASSWORD_ARGON2I);
  3. 変数「$str」に格納された文字列をアルゴリズム「PASSWORD_DEFAULT」でハッシュ化するときは下記のように記載する。

    password_hash($str,PASSWORD_DEFAULT);

Viewing all articles
Browse latest Browse all 21085

Trending Articles