[C++] 纯文本查看 复制代码
#include <openssl/md5.h>
int MD5_Init(MD5_CTX *c);
int MD5_Update(MD5_CTX *c, const void *data, unsigned long len);
int MD5_Final(unsigned char *md, MD5_CTX *c);
[C++] 纯文本查看 复制代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/md5.h>
#define MD5LEN 32
static const char hex_chars[] = "0123456789abcdef";
void convert_hex(unsigned char *md, unsigned char *mdstr)
{
int i;
int j = 0;
unsigned int c;
for (i = 0; i < 16; i++) {
c = (md >> 4) & 0x0f;
mdstr[j++] = hex_chars[c];
mdstr[j++] = hex_chars[md & 0x0f];
}
mdstr[MD5LEN] = '\0';
}
int main(int argc, char **argv[])
{
MD5_CTX md5_ctx;
unsigned char md[64];
unsigned char *data = "groad.net";
unsigned char mdstr[MD5LEN + 1];
// 初始化
MD5_Init(&md5_ctx);
// md5 加密
MD5_Update(&md5_ctx, (unsigned char *)data, strlen(data));
MD5_Final(md, &md5_ctx);
convert_hex(md, mdstr);
printf ("%s\n", mdstr);
return 0;
}