У меня странная проблема при использовании метода()() метода std :: string. Я хотел бы вычислить хэш хед для данной строки, используя эту библиотеку: http://sourceforge.net/projects/libmd5-rfc/files/ Хэш рассчитан правильно, но есть проблема с его печатью по-человечески. Выход:Почему моя печать MD5 с дополнительными символами «f»?
af04084897ebbf299b04082d105ab724
ffffffaf040848ffffff97ffffffebffffffbf29ffffff9b04082d105affffffb724
Кодекс:
#include <stdio.h>
#include<string>
#include<iostream>
extern "C" {
#include "md5.h"
}
int main()
{
md5_state_t state;
md5_byte_t digest[16];
std::string callid("[email protected]");
md5_init(&state);
md5_append(&state, (const md5_byte_t*)callid.c_str(), callid.length());
std::string callid_digest((const char*)digest, 16);
for(int i = 0; i < 16; ++i) {
printf("%02x", digest[i]);
}
printf("\n");
for(int i = 0; i < 16; ++i) {
const char c = callid_digest.at(i);
printf("%02x", c);
}
printf("\n");
}
Где "F" символы берутся?
pejotr, я купил код более, так как это считается лучше для вопросов, чтобы быть в качестве самодостаточной, насколько это возможно. Я также изменил название, чтобы сделать его более показательным. Надеюсь, вы не против. Приветствия. – paxdiablo