メインコンテンツまでスキップ
バージョン: 20 R7 BETA

Verify password hash

Verify password hash ( password ; hash ) -> 戻り値

引数説明
passwordTextユーザーのパスワード。最初の72文字のみ使用。
hashTextパスワードのハッシュ
戻り値Booleanパスワードとハッシュが合致する場合にはTRUE、それ以外の場合にはFALSE。

説明

Verify password hash ファンクションは、hash 引数で渡されたハッシュ値が、password 引数のパスワードと合致するかどうかを検証します。

このファンクションはpassword 引数のパスワードを、Generate password hash ファンクションで生成されたhash 引数のハッシュと比較します。

エラー管理

以下のエラーが返される可能性があります。これらのエラーはLast errors および ON ERR CALL コマンドで分析することができます。

番号メッセージ
850パスワード-ハッシュ: サポートされていないアルゴリズムです。
851パスワード-ハッシュ: 一貫性のチェックに失敗しました。

注: サポートされるアルゴリズムはbcrypt アルゴリズムのみです。ハッシュがbcrypt を使用して生成されたものではなかった場合、エラーが返されます。

例題

この例題ではGenerate password hash コマンドで作成済みで[Users] テーブルに保存されているパスワードハッシュを、新たに入力されたパスワードと検証する場合を考えます:

 var $password : Text
 $password:=Request("Please enter your password")
 
 If(Verify password hash($password;[Users]hash))
    ALERT("Good password")
 Else
    ALERT("Password error")
 End if

注: パスワードはディスク上に保存されることはありません。保存されるのはハッシュのみです。リモート4D アプリケーションを使用している場合、ハッシュはクライアント側で生成されることもあります。4D の代わりに例えばJavaScriptベースの(あるいはそれに類似した)フロントエンドを使用している場合、セキュリティ的な観点からみた最適な方法は、ハッシュをサーバー側で生成することです。無論、セキュリティのためにTLS 暗号化ネットワーク接続を使用するべきです。この場合ネットワーク上でパスワードを通信する必要があるからです。

参照

Generate password hash