При вычислении хэш-значения строчной кодированной строки я получил правильное значение.Неожиданное значение хеша MD5 с помощью openssl/md5
unsigned char digest[MD5_DIGEST_LENGTH];
char string[] = "fnamelname";
MD5((unsigned char*)&string, strlen(string), (unsigned char*)&digest);
char mdString[33];
for(int i = 0; i < 16; i++)
sprintf(&mdString[i*2], "%02x", (unsigned int)digest[i]);
printf("fullName: %s\n", string);
printf("md5 digest: %s\n", mdString);
При вычислении значения хэш-строки подготовленной строки я получил неверное/измененное значение хэш-функции.
char* fname = "fname";
char* lname = "lname";
char* fullname = new char[strlen(fname) + strlen(lname) + 1];
strcpy(fullname, fname);
strcat(fullname, lname);
MD5((unsigned char*) &fullname, strlen(fullname), (unsigned char*) &digest);
char mdString1[33];
for (int i = 0; i < 16; i++)
sprintf(&mdString1[i * 2], "%02x", (unsigned int) digest[i]);
printf("fullname: %s\n", fullname);
printf("md5 digest: %s\n", mdString1);
Большое спасибо, проблема решена. Но я не мог понять, почему? – user987654
Потому что вы хешировали значение указателя вместо данных, на которые оно указывает. – interjay
Великий человек, спасибо. – user987654