ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com

ホーム

 
4D v20 R7
Generate password hash

Generate password hash 


 

Generate password hash ( password {; options} ) -> 戻り値 
引数   説明
password  文字 in ユーザーのパスワード。最初の72文字のみ使用。
options  オブジェクト in オプションを格納したオブジェクト
戻り値  文字 in ハッシュされたパスワードを返します。

説明   

Generate password hash ファンクションはpassword 引数のパスワードから暗号化ハッシュアルゴリズムによって生成された、安全なパスワードハッシュを返します。

password 引数には、文字列を渡します。Generate password hash はパスワードのハッシュ化された文字列を返します。同じパスワードを複数回渡した場合、ハッシュ化された文字列は毎回異なる結果が返されます。

options オブジェクト引数には、パスワードハッシュを生成する際に使用したいプロパティを渡します。利用可能な値は以下の表にまとめてあります:
 

プロパティ値の型詳細デフォルト値
algorithm文字列使用するアルゴリズム。現在サポートされているのは"bcrypt"のみです(大文字と小文字は区別されます)。bcrypt
cost数値使用するスピード。bcryptでサポートされている値は4から31までの間の数値です。10

: options 引数オブジェクト内のどちらかの値が無効であった場合、エラーメッセージが生成され、空の文字列が返されます。

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

番号メッセージ
850パスワード-ハッシュ: サポートされていないアルゴリズムです。
852パスワード-ハッシュ: 利用不可なbcrypt cost 引数です。4から31の間の値を指定してください。

bcryptは、Blowfish暗号に基づいたパスワードハッシュ機能です。これは、レインボーテーブル攻撃に対するプロテクトとしてsaltと併用することでさらに有用な機能です。bcryptよりハッシュの反復回数を増やすことが可能で、計算結果に時間がかかりすぎて処理のコストがかかってしまうことから、速い計算速度におけるブルースフォース攻撃にも耐えうるようになります。

例題  

以下の例題では、bcryptを使用して、cost factorを4で指定してパスワードハッシュを生成する場合を考えます:

 C_TEXT($password)
 C_TEXT($hash)
 C_OBJECT($options)
 
 $options:=New object("algorithm";"bcrypt";"cost";4)
 $password:=Request("Please enter your password")
 
 $hash:=Generate password hash($password;$options)
 [Users]hash:=$hash
 SAVE RECORD([Users])

: 同じパスワードを複数回渡した場合、ハッシュ化された文字列は毎回異なる結果が返されます。これはbcryptのようなアルゴリズムにとっては仕様で、最適な方法は、毎回ハッシュを生成するごとに新しいランダムなソルトを作成することだからです。パスワードをどのようにチェックするかの例題については、Verify password hash の説明を参照してください。



参照 

4D Security guide
Generate digest
Verify password hash

 
プロパティ 

プロダクト: 4D
テーマ: ツール
番号: 1533

This command can be run in preemptive processes

 
ページの目次 
 
履歴 

初出: 4D v16 R5

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v20 R7)