- メインページ
- モジュール
- ネームスペース
- データ構造
- ファイル

- データ構造
- データ構造索引
- クラス階層
- データフィールド

Public 型 | Public メソッド | Protected メソッド
クラス mist::hash_algorithm
ハッシュ関数

ハッシュ関数を計算する基底クラス [詳細]

`#include <hash_algorithm.h>`

mist::hash_algorithmに対する継承グラフ

## Public 型
typedef size_t | size_type
| 符号なしの整数を表す型．コンテナ内の要素数や，各要素を指定するときなどに利用し，内部的には size_t 型と同じ
typedef ptrdiff_t | difference_type
| 符号付きの整数を表す型．コンテナ内の要素数や，各要素を指定するときなどに利用し，内部的には ptrdiff_t 型と同じ
typedef unsigned char | uint8
| 符号なし8ビット整数を表す型．内部のハッシュ関数値を計算するのに利用．内部的には unsigned char 型と同じ．
typedef unsigned int | uint32
| 符号なし32ビット整数を表す型．内部のハッシュ関数値を計算するのに利用．内部的には unsigned int 型と同じ．
typedef unsigned long long int | uint64
| 符号なし64ビット整数を表す型．内部のハッシュ関数値を計算するのに利用．内部的には unsigned long long int 型と同じ．

## Public メソッド
virtual void | compute_hash (const void *bytes, uint64 len)=0
| data[ 0 ] から data[ len - 1 ] の len バイトのハッシュ関数値を計算する．
void | compute_hash (const std::string &str)
| 文字列 str のハッシュ関数値を計算する．
virtual const std::string | name () const =0
| ハッシュ関数名を返す
size_type | size () const
| ダイジェストバイト列の長さ
unsigned char | operator[] (size_type index) const
| ダイジェスト文字列の各バイトを取得する
std::string | to_string () const
| ダイジェスト文字列を返す
bool | operator== (const hash_algorithm &h) const
| 2つのハッシュ関数値が同一かどうかを判定する
bool | operator== (const std::string &str) const
| 2つのダイジェスト文字列が同一かどうかを判定する

## Protected メソッド
| hash_algorithm (size_type num_digest_bytes)
| 指定されたダイジェストのバイト数で初期化する（派生クラスでのみ利用可能）
| hash_algorithm (const std::string &str)
| 指定されたダイジェスト文字列で初期化する（派生クラスでのみ利用可能）
virtual | ~hash_algorithm ()
| ダイジェストに利用したデータを削除する

## 説明

ハッシュ関数を計算する基底クラス

MD2，MD4，MD5，SHA1，SHA-256，SHA-384，SHA-512 を計算するための基底クラス

注意
  SHA-384，SHA-512 を計算する際に 64 ビット整数を利用するため，コンパイラが 64 ビットをサポートする必要あり．

ハッシュ関数の計算例
// ハッシュ関数を SHA1 で初期化する
mist::hash_algorithm &h = mist::sha1( "a" );
// ハッシュ関数値のダイジェスト文字列を出力する
std::cout << h << std::endl;
// 別の文字列で再計算する
h.compute_hash( "あいうえお" );
// ハッシュ関数値のダイジェスト文字列を出力する
std::cout << h << std::endl;

このクラスの説明は次のファイルから生成されました:

- hash_algorithm.h