(No version information available, might only be in Git)
openssl_password_hash — OpenSSL の Argon2 実装を使ってパスワードハッシュを作る
OpenSSL の Argon2 実装を使ってパスワードハッシュを作ります。 この関数は、バックエンドとして OpenSSL を使う password_hash() の代替手段であり、 プラットフォームによってはハードウェアアクセラレーションを利用できます。
この関数は、PHP が Argon2 をサポートする OpenSSL
(HAVE_OPENSSL_ARGON2)
とともにコンパイルされている場合にのみ使用できます。
algo
パスワードハッシュアルゴリズム。サポートされている値は
"argon2id" と "argon2i" です。
passwordユーザーのパスワード。
optionsオプションの連想配列 (array)。サポートされるキーは以下のとおりです:
memory_cost - ハッシュの計算に使用する
最大メモリ量 (KiB 単位)
time_cost - ハッシュの計算にかける
最大時間
threads - ハッシュの計算に使用する
スレッド数
パスワードハッシュを文字列 (string) で返します。
algo がサポートされている値
("argon2i" または "argon2id")
のいずれでもない場合、ValueError をスローします。
不明な原因でハッシュ操作が失敗した場合、 Error をスローします。
| バージョン | 説明 |
|---|---|
| 8.4.0 | 関数が追加されました。 |
例1 openssl_password_hash() の例
<?php
$hash = openssl_password_hash('argon2id', 'my-secret-password');
echo $hash;
?>上の例の出力は、 たとえば以下のようになります。
$argon2id$v=19$m=65536,t=4,p=1$c29tZXNhbHR2YWx1ZQ$hashvalue...
例2 カスタムオプションを指定した openssl_password_hash() の例
<?php
$hash = openssl_password_hash('argon2id', 'my-secret-password', [
'memory_cost' => 65536,
'time_cost' => 4,
'threads' => 1,
]);
?>