Hashクラス

Biz/Browser 4.1.0

Biz/Browser Mobile 2.0.0

Biz/Browser AI 1.0.0

Object

 

 

 

 

 

 

Hash

 

 

 

ハッシュ値を生成するクラスです。

ハッシュ値とは、文書や数値などのデータからハッシュアルゴリズムにより算出される固定長の値で、元のデータの要約として利用できます。ハッシュ値は単なる数値の羅列となるため、ハッシュ値から元のデータを推定することは不可能となります。

 

この特徴を使って、ある文書のハッシュ値を算出して保存しておき、後日同じ文書から算出したハッシュ値と保存しておいたハッシュ値と比較すれば、その間に元の文書が改竄されていないことを確認することができます。元の文書全体を別の場所に保存して比較しても同様の事ができますが、ハッシュ値は文書の大きさに関わりなく固定長の短いデータとなるため保存したり比較する事が容易になります。

 

 

電子署名でもハッシュが使われており、署名するデータのハッシュ値(メッセージダイジェスト)を算出して公開鍵暗号アルゴリズムで暗号化されています。公開鍵で解読したハッシュ値と、元のデータから算出し直したハッシュ値が一致すれば、間違いなく公開鍵の持ち主により作成されたデータで、改竄もされていないことが保障されます。

 

ハッシュ値を算出するデータに応じて2種類の方法があります。

ひとつは、Reader/Writerオブジェクトの入出力データから算出する方法で、Hashクラスのコンストラクタにデータの入出力に利用するオブジェクトを指定します。

 

使用例

var fs = new FileSystem;
var fp = fs.Open("data.xml", FileSystem.OPEN_READ);
var md = new Hash(fp, Hash.HALG_MD5);
var ximp = new xmlDOMImplementation();
var xdoc = ximp.Load(md);
md.close(true);
MessageBox(md.GetHashData(), "Hash");

 

この例では、HashオブジェクトmdFileオブジェクトfpを引数に初期化しています。続く、XmlDOMImplementationLoadメソッドでXMLをロードしていますが、Hashオブジェクトを経由するため、fpの指すファイルdata.xmlのハッシュ値も同時に算出されます。

 

このようにHashオブジェクトは、ハッシュ値の算出を行うフィルターのような動作をします。

 

 

もうひとつの方法は、HashクラスのスタティックメソッドHashStringを利用して文字列から直接Hash値を算出する方法です。

 

var hash_value = Hash.HashString("ハッシュ値を算出する文字列", Hash.HALG_MD5);

 

この例では、"ハッシュ値を算出する文字列" のハッシュ値をhash_value変数に格納しています。

 

デフォルトプロパティとValueType

 

デフォルトプロパティはありません。ValueTypeの指定は無効です。

 

 

プロパティ | メソッド | イベント

 



「オンラインマニュアル」一覧へ戻る
「Bizの宝箱」TOPへ戻る