代码拉取完成,页面将自动刷新
#ifndef XMD5_H
#define XMD5_H
#include <string>
#include <fstream>
/*类型定义 */
typedef unsigned char uchar;
typedef unsigned int uint32;
using std::string;
using std::ifstream;
/* MD5 声明 */
class XMD5 {
public:
XMD5();
XMD5(const void* input, size_t length);
XMD5(const string& str);
XMD5(ifstream& in);
void update(const void* input, size_t length);
void update(const string& str);
void update(ifstream& in);
/*返回消息摘要*/
const uchar* digest();
//转String输出
std::string toString();
//重置状态
void reset();
public:
//获得32位md5值
static std::string String(const void* input, size_t length);
static std::string String(const string& str);
static std::string file(ifstream& in);
static std::string file(const string& path);
private:
void update(const uchar* input, size_t length);
void final();
void transform(const uchar block[64]);
void encode(const uint32* input, uchar* output, size_t length);
void decode(const uchar* input, uint32* output, size_t length);
string bytesToHexString(const uchar* input, size_t length);
/* class uncopyable */
XMD5(const XMD5&);
XMD5& operator=(const XMD5&);
private:
uint32 _state[4]; /* state (ABCD) */
uint32 _count[2]; /* number of bits, modulo 2^64 (low-order word first) */
uchar _buffer[64]; /* input buffer */
uchar _digest[16]; /* message digest */
bool _finished; /* calculate finished ? */
static const uchar PADDING[64]; /* padding for calculate */
static const char HEX[16];
enum { BUFFER_SIZE = 1024 };
};
#endif /*MD5_H*/
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。