メインコンテンツまでスキップ
バージョン: 次へ

Verify password hash

Verify password hash ( password : Text ; hash : Text ) : Boolean

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

説明

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

プロパティ

コマンド番号1534
スレッドセーフであるyes