| 4D v18Generate digest | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v18
 Generate digest 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Generate digest ( param ; algorithm ) -> 戻り値 | ||||||||
| 引数 | 型 | 説明 | ||||||
| param | BLOB, テキスト変数 |   | Digestキーを取得するBLOBやテキスト | |||||
| algorithm | 倍長整数 |   | キーの生成に使用するアルゴリズム 0= MD5、1 = SHA1、 2=4Dダイジェスト | |||||
| 戻り値 | テキスト |   | Digestキーの値 | |||||
Generate digestコマンドはBLOBやテキストのDigestキーを指定したアルゴリズムで生成して返します。
param 引数にはテキストまたはBLOBフィールドや変数を渡します。Generate digestコマンドはダイジェストキーを文字列として返します。
algorithm 引数で使用するハッシュ関数を指定します。Digest Typeテーマ内にある以下の定数を使用できます:
| 定数 | 型 | 値 | コメント | 
| 4D digest | 倍長整数 | 2 | 4D内部のアルゴリズムを使用。4Dがユーザーパスワードを暗号化するために使用しています。このアルゴリズムはOn REST Authentication データベースメソッド のコンテキストにおいて独自のユーザー一覧を使用したい場合には特に有用です。 | 
| MD5 digest | 倍長整数 | 0 | MD5アルゴリズムを使用。32ビットの16進数の文字列として返された、連続した128ビット | 
| SHA1 digest | 倍長整数 | 1 | SHA-1アルゴリズムを使用。40ビットの16進数の文字列として返された、連続した160ビット | 
| SHA256 digest | 倍長整数 | 3 | (SHA-2 family) SHA-256は、64ビットの16進数の文字列として返された、連続した256ビット | 
| SHA512 digest | 倍長整数 | 4 | (SHA-2 family) SHA-512は、128ビットの16進数の文字列として返された、連続した512ビット | 
注: パスワードの管理にMD5 および SHA アルゴリズムを使用することは推奨されていません。パスワードをチェックするためには、Generate password hash および Verify password hashコマンドを使用することが推奨されます。
同じオブジェクトに対して返される値は、全てのプラットフォームにおいて同じです(macOS/Win)。この計算は引数に渡されたテキストをUTF-8で表現したものに基づいています。
注: コマンドを空のテキストやBLOBに対して実行すると、エラーは返されず、文字列の値が返されます(例えばMD5 に対しては"d41d8cd98f00b204e9800998ecf8427e"が返されます)
この例題ではMD5 アルゴリズムを使用して二つの画像を比較する場合を考えます
 C_PICTURE($vPict1;$vPict2)
 C_BLOB($FirstBlob;$SecondBlob)
 READ PICTURE FILE("c:\\myPhotos\\photo1.png")
 If(OK=1)
    READ PICTURE FILE("c:\\myPhotos\\photo2.png")
    If(OK=1)
       PICTURE TO BLOB($vPict1;$FirstBlob;".png")
       PICTURE TO BLOB($vPict2;$SecondBlob;".png")
 
       $MD5_1:=Generate digest($FirstBlob;MD5 digest)
       $MD5_2:=Generate digest($SecondBlob;MD5 digest)
 
       If($MD5_1#$MD5_2)
          ALERT("二つの画像は異なるものです")
       Else
          ALERT("二つの画像は完全に同一のものです")
       End if
    End if
 End ifこの例題ではテキストのダイジェストキーを取得します:
 $key1:=Generate digest("The quick brown fox jumps over the lazy dog.";MD5 digest)
  // $key1は"e4d909c290d0fb1ca068ffaddf22cbd0"
 $key2:=Generate digest("The quick brown fox jumps over the lazy dog.";SHA1 digest)
  // $key2は"408d94384216f890ff7a0c3528e8bed1e0b01621"この例題ではパスワード "123"を使用する、4Dユーザーと合致しない "admin"というユーザーのみを受け入れる場合を考えます:
  //On REST Authentication database method
 C_TEXT($1;$2)
 C_BOOLEAN($0;$3)
  //$1: ユーザー
  //$2: パスワード
  //$3: ダイジェストモード
 If($1="admin")
    If($3)
       $0:=($2=Generate digest("123";4D digest))
    Else
       $0:=($2="123")
    End if
 Else
    $0:=False
 End if
	プロダクト: 4D
	テーマ: ツール
	番号: 
        1147
        
        
        
	
	初出: 4D v13
	変更: 4D v14
	変更: 4D v16 R5
	
	
	ランゲージリファレンス ( 4D v18)
	
	
	
 コメントを追加
コメントを追加