最近需要和服务器通讯,要求使用MD5签名验证;
用OpenSSL下的MD5进行测试;可以参考君正X系列开发19--Linux环境下使用openssl库的MD5进行数据加密_c++ md5加密 openssl 16位-CSDN博客
如果MD5内容没有中文,结果一致;
但当字符串出现中文时,结果不一致;
例如
"你好123"
OpenSSL下MD5
#include <stdio.h>
#include <openssl/md5.h>
#include <string.h>
int main(int argc, char **argv)
{
unsigned char data[] = "你好123";
unsigned char md[16];
int i;
char tmp[3] = {'\0'}, buf[33] = {'0'};
MD5(data, strlen((char*)data), md);
for(i = 0;i < 16;i++)
{
sprintf(tmp, "%2.2x", md[i]);
strcat(buf, tmp);