00001 #ifndef MD5_H
00002 #define MD5_H
00003 #include <string>
00004
00005 class MD5
00006 {
00007 typedef unsigned char md5_byte_t;
00008 typedef unsigned int md5_word_t;
00009
00010
00011 typedef struct md5_state_s {
00012 md5_word_t count[2];
00013 md5_word_t abcd[4];
00014 md5_byte_t buf[64];
00015 } md5_state_t;
00016
00017 void md5_process(md5_state_t *pms, const md5_byte_t *data );
00018
00019
00020 void md5_init(md5_state_t *pms);
00021
00022
00023 void md5_append(md5_state_t *pms, const md5_byte_t *data, int nbytes);
00024
00025
00026 void md5_finish(md5_state_t *pms, md5_byte_t digest[16]);
00027
00028 md5_state_t state;
00029 unsigned char* sum;
00030 public:
00031 MD5();
00032 ~MD5();
00033
00038 static std::string Md5(const std::string str);
00039
00044 void Append(const char* buf, int len);
00045
00049 std::string Get();
00050 };
00051
00052 #endif