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

Generate digest

Generate digest ( param ; algorithm {; *} ) : Text

引数説明
paramBlob, TextDigestキーを取得するBLOBやテキスト
algorithmIntegerキーの生成に使用するアルゴリズム0= MD5、1 = SHA1、 2=4Dダイジェスト
*演算子ダイジェストをBase64URL でエンコード
戻り値TextDigestキーの値

説明

Generate digestコマンドはBLOBやテキストのDigestキーを指定したアルゴリズムで生成して返します。引数にはテキストまたはBLOBフィールドや変数を渡します。Generate digestコマンドはダイジェストキーを文字列として返します。

algorithm 引数で使用するハッシュ関数を指定します。Digest Typeテーマ内にある以下の定数を使用できます:

定数コメント
_o_4D REST digest倍長整数2*** 廃止予定の定数 ***
MD5 digest倍長整数0MD5アルゴリズムを使用。32ビットの16進数の文字列として返された、連続した128ビット
SHA1 digest倍長整数1SHA-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コマンドを使用することが推奨されます。

デフォルトで、 * 引数が省略された場合、16進数でエンコードされたダイジェストキーが返されます。ダイジェストキーをBase64URLでエンコードしたい場合、 * 引数を渡します。

同じオブジェクトに対して返される値は、全てのプラットフォームにおいて同じです(macOS/Win)。この計算は引数に渡されたテキストをUTF-8で表現したものに基づいています。

注: コマンドを空のテキストやBLOBに対して実行すると、エラーは返されず、文字列の値が返されます(例えばMD5 に対しては"d41d8cd98f00b204e9800998ecf8427e"が返されます)

例題 1

この例題ではMD5 アルゴリズムを使用して二つの画像を比較する場合を考えます

 var $vPict1;$vPict2 : Picture
 var $FirstBlob;$SecondBlob : Blob
 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

例題 2

この例題ではテキストのダイジェストキーを取得します:

 $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"

参照

BASE64 DECODE
BASE64 ENCODE
Generate password hash
WEB Validate digest
暗号化プロトコル

プロパティ

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