4D v14.3Generate digest |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
Generate digest
|
Generate digest ( param ; algorithm ) -> 戻り値 | ||||||||
引数 | 型 | 説明 | ||||||
param | BLOB, テキスト変数 |
![]() |
Digestキーを取得するBLOBやテキスト | |||||
algorithm | 倍長整数 |
![]() |
キーの生成に使用するアルゴリズム 0= MD5、1 = SHA1、 2=4Dダイジェスト |
|||||
戻り値 | テキスト |
![]() |
Digestキーの値 | |||||
Generate digestコマンドはBLOBやテキストのDigestキーを指定したアルゴリズムで生成して返します。
現在4Dでは2つのアルゴリズム、MD5 (Message Digest 5) と SHA-1 (Secure Hash 1) と 4D (内部アルゴリズム)が利用できます。これらのアルゴリズムは異なるハッシュ関数です:
注: コマンドを空のテキストやBLOBに対して実行すると、計算結果として以下が返されます (エラーにはなりません): "d41d8cd98f00b204e9800998ecf8427e" (MD5)
"da39a3ee5e6b4b0d3255bfef95601890afd80709" (SHA-1)
param 引数にはテキストまたはBLOBフィールドや変数を渡します。Generate digestコマンドはダイジェストキーを文字列として返します。
algorithm 引数で使用するハッシュ関数を指定します。Digest Typeテーマの以下の定数を使用できます:
定数 | 型 | 値 | コメント |
4D digest | 倍長整数 | 2 | 4D内部のアルゴリズムを使用 |
MD5 digest | 倍長整数 | 0 | MD5アルゴリズムを使用 |
SHA1 digest | 倍長整数 | 1 | SHA-1アルゴリズムを使用 |
ダイジェストキーの計算が失敗した場合コマンドはエラーを生成し、空の文字列を返します。このエラーはON ERR CALLでインストールされるエラー処理メソッドで処理できます。
この例題ではMD5アルゴリズムを使用して2つのドキュメントを比較します:
PLATFORM PROPERTIES($Platf;$Syst;$vlMachine)
// 一番目のドキュメントを読み込みモードで開く
$Same:=True
$vhDocRef1:=Open document("";"*";Read Mode))
If(OK=1) // ドキュメントが選択されたら
DOCUMENT TO BLOB(Document;$FirstBlob) // ドキュメントをロード
If(OK=1)
If($Platf=Mac OS)
DOCUMENT TO BLOB(Document;$FirstBlobRF;*)
// Mac OSではリソースフォークもロード
$MD5_1RF:=Generate digest($FirstBlobRF;MD5 digest)
End if
// 二番目のドキュメントを読み込みモードで開く
$vhDocRef2:=Open document("";"*";Read Mode))
If(OK=1)
DOCUMENT TO BLOB(Document;$SecondBlob)
If(OK=1)
If($Platf=Mac OS)
DOCUMENT TO BLOB(Document;$SecondBlobRF;*)
$MD5_2RF:=Generate digest($SecondBlobRF;MD5 digest)
If($MD5_1RF#$MD5_2RF) // ダイジェストを比較
$Same:=False
End if
End if
$MD5_1:=Generate digest($FirstBlob;MD5 digest)
$MD5_2:=Generate digest($SecondBlob;MD5 digest)
If(($MD5_1#$MD5_2)|($Same=False))
ALERT("異なるドキュメントです")
End if
End if
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"
プロダクト: 4D
テーマ: ツール
番号:
1147
初出: 4D v13
変更: 4D v14
ランゲージリファレンス ( 4D v14 R2)
ランゲージリファレンス ( 4D v14 R3)
ランゲージリファレンス ( 4D v14.3)
ランゲージリファレンス ( 4D v14 R4)
Inherited from : Generate digest ( 4D v13.5)