![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク : SophiaFramework 3.0 |
| パブリック関数 | |
|---|---|
| SFCError |
GetResult(
VoidPtr data
, SInt32Ptr size
) GetResult( SFXBufferPtr data )
すべての SFBHash::Update() 呼び出し終了後のハッシュ結果を取得します。
|
| static SFBHashSmp |
NewInstance(
AEECLSID clsid = AEECLSID_MD5
) SFBHash インターフェイスのインスタンスを取得します。
|
| Void |
Restart( Void )
ハッシュ操作を再開始します。
|
| Void |
Update(
VoidPtr data
, SInt32 dataLength
) Update( SFXBufferPtr data )
ハッシュ オブジェクトにデータを供給します。
|
[ public ] SFCError GetResult( VoidPtr data // ハッシュ結果を取得するデータへのポインタ。 SInt32Ptr size // バッファ data のサイズへのポインタ。リターン時は、ハッシュ結果のサイズが格納される。 );
[ public ] SFCError GetResult( SFXBufferPtr data // ハッシュ結果を取得するためのバッファ。サイズは自動的に変換される。 );
注意:バッファサイズは SInt32 の値までの制限があります。
[ public, static ] SFBHashSmp NewInstance( AEECLSID clsid = AEECLSID_MD5 // ハッシュアルゴリズムの ClassID );
使用できる ClassID には次のものがあります。
| AEECLSID_MD2 |
| AEECLSID_MD5 |
| AEECLSID_SHA1 |
[ public ] Void Restart(Void);
これは新しいデータストリームをハッシュする場合に必要となります。
異なるデータストリームを立て続けにハッシュし、ログに表示します。
AChar srcString[] = {"message for you..."};
AChar srcStringNext[] = {"next message for you..."};
AChar result[32] = {0};
SInt32 len = 32;
// SFBHash インスタンスを生成します。
SFBHashSmp hash = SFBHash::NewInstance();
// ハッシュします。
hash->Update(srcString, STRLEN(srcString));
// ハッシュ後の結果を取得します。
hash->GetResult(result, &len);
// ハッシュ後の結果をログに表示します。
DBGPRINTF("*** result: %s ***", result);
// 再度ハッシュを行います。
ZEROAT(result);
len = 32;
// データストリームの初期化をします。
hash->Restart();
// 1 バイトづつハッシュをします。
ACharPtr i = srcStringNext;
for (; *i; i++)
hash->Update(i, 1);
// ハッシュ後の結果を取得します。
hash->GetResult(result, &len);
// ハッシュ後の結果をログに表示します。
DBGPRINTF("*** next result: %s ***", result);
[ public ] Void Update( VoidPtr data // ハッシュするデータへのポインタ。 SInt32 dataLength // ハッシュする(pbData に格納された)データの長さ。 );
[ public ] Void Update( SFXBufferPtr data // ハッシュするデータへのポインタ。null の場合、何もしない。 );
不連続の長いデータ ストリームをハッシュする場合、 この関数を複数回呼び出します。
文字列をハッシュし、ログに結果を表示します。
AChar srcString[] = {"message for you..."};
AChar result[32] = {0};
SInt32 len = 32;
// SFBHash インスタンスを生成します。
SFBHashSmp hash = SFBHash::NewInstance();
// ハッシュします。
hash->Update(srcString, STRLEN(srcString));
// ハッシュ後の結果を取得します。
hash->GetResult(result, &len);
// 結果をログに表示します。
DBGPRINTF("*** result: %s ***", result);
|
Copyright (C) 2002 - 2009 Sophia Cradle, Inc. All Rights Reserved. |
![]() ![]() ![]()
|