MD5.h 896 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #ifndef __MD5_H
  2. #define __MD5_H
  3. #include "Types.h"
  4. namespace tzc {
  5. class DECLDLL MD5 {
  6. public:
  7. MD5();
  8. MD5(const std::string & str);
  9. MD5(const void * bytes, TZ_Uint32 length);
  10. ~MD5();
  11. public:
  12. void Reset();
  13. // append data to current context
  14. void Append(const std::string & str);
  15. void Append(const void * bytes, TZ_Uint32 length);
  16. const TZ_BYTE * Digest();
  17. std::string ToString();
  18. private:
  19. void append(const TZ_BYTE * bytes, TZ_Uint32 length);
  20. void final();
  21. void md5Transform(void);
  22. std::string bytes2HexString(const TZ_BYTE * input, TZ_Uint32 length) const;
  23. private:
  24. TZ_Uint32 m_buf[4];
  25. TZ_Uint32 m_bytes[2];
  26. TZ_Uint32 m_in[16];
  27. TZ_BYTE m_digest[16]; // message digest
  28. TZ_BOOL m_finished;
  29. private:
  30. static const TZ_CHAR HEX[16];
  31. private:
  32. MD5(const MD5 &);
  33. MD5 & operator = (const MD5 &);
  34. };
  35. }; // namespace tzc
  36. #endif /* ----- #ifndef __MD5_H ----- */