前のページ|次のページ

MD5関数

指定した文字列のメッセージダイジェストの結果を返します。

カテゴリ: 文字

構文

MD5(string)

必須引数

string

文字定数、変数または式を指定します。

ヒント 文字のリテラル文字列を引用符で囲みます。

詳細

返される変数の長さ

DATAステップでは、まだ長さが割り当てられていない変数にMD5関数から値が返される場合、その変数には200バイトの長さが割り当てられます。

基本

MD5関数は、MD5アルゴリズムに基づいて文字列を128ビットのハッシュ値に変換します。このハッシュ値はメッセージダイジェスト(デジタル署名)と呼ばれ、関数に渡される各文字列に対してほぼ重複することはありません。
MD5関数では、出力形式は適用されません。$BINARYw. 出力形式または$HEXw. 出力形式を使用して、読み取り可能な結果を表示します。
動作環境の情報: z/OS動作環境では、MD5はASCIIではなくEBCDICで出力を生成します。したがって、出力は異なります。

メッセージダイジェストアルゴリズム

メッセージダイジェストは、任意の長いバイナリデータストリームを操作および圧縮した結果です。理想的なメッセージダイジェストアルゴリズムでは、2つの異なる入力セットに対し同じ結果は生成されません。ただし、このような重複しない結果を生成するには、入力自体と同じぐらいの長さのメッセージダイジェストが必要になります。したがってMD5Pは、ほぼ重複することのない結果を出力するために設計されたアルゴリズムで作成される、適度なサイズ(16バイト)のメッセージダイジェストを生成します。

MD5関数を使用する

MD5関数を使用して、データセット内の変更を追跡できます。MD5関数は、テーブル内のレコードの列の値セットのダイジェストを生成できます。このダイジェストをレコードの署名として扱い、レコードに加えられる変更を追跡するために使用できます。新しいレコードからのダイジェストが、テーブル内のレコードの既存のダイジェストと一致する場合、2つのレコードは同一です。ダイジェストが異なる場合、レコードの列の値が変更されています。新たに変更されたレコードは、既存のキーのある値への変更を表す新しい代理キーとともにテーブルに追加されます。
MD5関数は、ソフトウェアのインストール、ファイル比較、ファイル破損および改ざん検出のためのシェルスクリプトまたはPerlプログラムを開発するときに便利な場合があります。
MD5関数は、ハッシュパッケージのキーとして使用するオブザベーションの重複しないIDを作成するためにも使用できます。詳細については、Introduction to DATA Step Component Objects (SAS言語リファレンス: 解説編)を参照してください。

例: MD5関数を使用した結果の生成

この例では、MD5関数によって返される結果を生成する方法を示します。
data _null_;
   y=md5('abc');
   z=md5('access method');
   put y=/ y=$hex32.;
   put z=/ z=$hex32.;
run;
このプログラムからの出力には、印刷不可文字が含まれます。
前のページ|次のページ|ページの先頭へ