| 4D v20.1Verify password hash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v20.1
 Verify password hash 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Verify password hash ( password ; hash ) -> 戻り値 | ||||||||
| 引数 | 型 | 説明 | ||||||
| password | 文字 |   | ユーザーのパスワード。最初の72文字のみ使用。 | |||||
| hash | 文字 |   | パスワードのハッシュ | |||||
| 戻り値 | ブール |   | パスワードとハッシュが合致する場合にはTRUE、それ以外の場合にはFALSE。 | |||||
Verify password hash ファンクションは、hash 引数で渡されたハッシュ値が、password 引数のパスワードと合致するかどうかを検証します。
このファンクションはpassword 引数のパスワードを、Generate password hash ファンクションで生成されたhash 引数のハッシュと比較します。
以下のエラーが返される可能性があります。これらのエラーはGET LAST ERROR STACK および ON ERR CALL コマンドで分析することができます。
| 番号 | メッセージ | 
| 850 | パスワード-ハッシュ: サポートされていないアルゴリズムです。 | 
| 851 | パスワード-ハッシュ: 一貫性のチェックに失敗しました。 | 
注: サポートされるアルゴリズムはbcrypt アルゴリズムのみです。ハッシュがbcrypt を使用して生成されたものではなかった場合、エラーが返されます。
この例題ではGenerate password hash コマンドで作成済みで[Users] テーブルに保存されているパスワードハッシュを、新たに入力されたパスワードと検証する場合を考えます: 
 C_TEXT($password)
 $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 暗号化ネットワーク接続を使用するべきです。この場合ネットワーク上でパスワードを通信する必要があるからです。
	プロダクト: 4D
	テーマ: ツール
	番号: 
        1534
        
        
        
	
	初出: 4D v16 R5
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	ランゲージリファレンス ( 4D v20)
	
	
	ランゲージリファレンス ( 4D v20.1)
	
	
	
 コメントを追加
コメントを追加