Declaration
class md5;
Overview
md5 は,引数に指定された文字列,または1Byte(char 型)の配列に対して MD5 方式でハッシュ値を計算するためのクラスです.使用方法は以下のようになります.
- reset() メソッドで初期化を行う.
- update() メソッドに計算を行うためのデータを指定して呼び出す.update() メソッドは,複数回呼び出すことも可能.
- finish() メソッドで計算処理を終了する.
一度に全てのデータを渡せる場合,これらのメソッドを順番に呼び出す代わりに encode() メソッドを用いることもできます.encode() メソッドは,reset(),update(), finish() メソッドを一度に呼び出します.
Example
#include <iostream> #include <string> #include "clx/md5.h" int main(int argc, char* argv[]) { std::string s1 = ""; std::string s2 = "a"; std::string s3 = "abc"; std::string s4 = "message digest"; std::string s5 = "abcdefghijklmnopqrstuvwxyz"; std::string s6 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; clx::md5 md; std::cout << "str: " << s1 << std::endl; std::cout << "md5: " << md.encode(s1).to_string() << std::endl; std::cout << std::endl; std::cout << "str: " << s2 << std::endl; std::cout << "md5: " << md.encode(s2).to_string() << std::endl; std::cout << std::endl; std::cout << "str: " << s3 << std::endl; std::cout << "md5: " << md.encode(s3).to_string() << std::endl; std::cout << std::endl; std::cout << "str: " << s4 << std::endl; std::cout << "md5: " << md.encode(s4).to_string() << std::endl; std::cout << std::endl; std::cout << "str: " << s5 << std::endl; std::cout << "md5: " << md.encode(s5).to_string() << std::endl; std::cout << std::endl; std::cout << "str: " << s6 << std::endl; std::cout << "md5: " << md.encode(s6).to_string() << std::endl; std::cout << std::endl; return 0; }
Result str: md5: d41d8cd98f00b204e9800998ecf8427e str: a md5: 0cc175b9c0f1b6a831c399e269772661 str: abc md5: 900150983cd24fb0d6963f7d28e17f72 str: message digest md5: f96b697d7cb7938d525a2f31aaf161d0 str: abcdefghijklmnopqrstuvwxyz md5: c3fcd3d76192e4007dfb496cca67e13b str: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 md5: d174ab98d277d9f5a5611c2c9f419d9f
Related Types
typedef unsigned char uchar_t; typedef char char_type; typedef std::string string_type;
Construction and Member Functions
md5(); explicit md5(const char_type* src, size_t n); explicit md5(const string_type& src);
md5& encode(const char_type* src, size_t n); md5& encode(const string_type& src); void reset(); void update(const char_type* src, size_t n); void finish();
MD5 方式のハッシュ値を計算する場合は,encode() メソッドか,reset(),update(), finish() メソッド群のどちらかを使用します.後者のメソッド群は, データサイズが大きいなどの理由で一度に全てのデータを渡すことができない場合に使用します.
int size() const; const uchar_t* code() const; string_type to_string() const;
size() メソッドは,計算結果のハッシュ値のデータサイズを返します.code() メソッドは, 計算結果のハッシュ値を返します.to_string() メソッドは,計算結果を数値文字列に変換したものを返します.