#include "stdio.h"
#include
#include
#include
void convert_hex(unsigned char *in, char *out)
{
int i;
for(i = 0; i < 16; i++)
{
sprintf(out + (i*2), "x", in[i]); // Convert to 32 bit(lowercase)
// sprintf(out + (i*2), "X", in[i]); // Convert to 32 bit(Capital)
}
out[32] = 0;
}
int MD5_encrypt(char *input, char *output, int in_len)
{
char *password = malloc(sizeof(char) * in_len+1);
MD5_CTX x;
char *out = NULL;
unsigned char d[16];
strcpy(password,input);
MD5_Init(&x);
MD5_Update(&x, password, in_len);
MD5_Final(d, &x);
out = (char *)malloc(35);
memset(out, 0x00, 35);
//strcpy(out, "$1$");
// printf("MD5(\"%s\") = ", password);
convert_hex(d, out);
// printf("%s\n", out);
strcpy(output,out);
free(out);
return 0;
}
int main(int argc, char *argv[])
{
char *o = malloc(sizeof(char) *128);
MD5_encrypt("123456", o, 6);
printf("%s\n", o);
MD5_encrypt(o, o, strlen(o));
printf("%s\n", o);
return 0;
}
Linux openssl MD5 C语言例程(使用crypto库)
最新推荐文章于 2022-06-12 11:02:29 发布