mirror of
https://github.com/0TheSpy/Seaside.git
synced 2025-01-11 11:33:01 +08:00
51 lines
1.2 KiB
C
51 lines
1.2 KiB
C
#ifndef CHECKSUM_MD5_H
|
|
#define CHECKSUM_MD5_H
|
|
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#define MD5_DIGEST_LENGTH 16
|
|
#define MD5_BIT_LENGTH ( MD5_DIGEST_LENGTH * sizeof(unsigned char) )
|
|
struct MD5Value_t
|
|
{
|
|
unsigned char bits[MD5_DIGEST_LENGTH];
|
|
|
|
void Zero();
|
|
bool IsZero() const;
|
|
|
|
bool operator==(const MD5Value_t& src) const;
|
|
bool operator!=(const MD5Value_t& src) const;
|
|
|
|
};
|
|
|
|
typedef struct
|
|
{
|
|
unsigned int buf[4];
|
|
unsigned int bits[2];
|
|
unsigned char in[64];
|
|
} MD5Context_t;
|
|
|
|
void MD5Init(MD5Context_t* context);
|
|
void MD5Update(MD5Context_t* context, unsigned char const* buf, unsigned int len);
|
|
void MD5Final(unsigned char digest[MD5_DIGEST_LENGTH], MD5Context_t* context);
|
|
|
|
char* MD5_Print(unsigned char* digest, int hashlen);
|
|
|
|
void MD5_ProcessSingleBuffer(const void* p, int len, MD5Value_t& md5Result);
|
|
|
|
unsigned int MD5_PseudoRandom(unsigned int nSeed);
|
|
|
|
bool MD5_Compare(const MD5Value_t& data, const MD5Value_t& compare);
|
|
|
|
inline bool MD5Value_t::operator==(const MD5Value_t& src) const
|
|
{
|
|
return MD5_Compare(*this, src);
|
|
}
|
|
|
|
inline bool MD5Value_t::operator!=(const MD5Value_t& src) const
|
|
{
|
|
return !MD5_Compare(*this, src);
|
|
}
|
|
|
|
#endif |