Кажется, что вы используете openssl.
Используйте константу MD5_DIGEST_LENGTH
.
Вы также можете использовать функцию MD5
вместо MD5_Init
, MD5_Update
и MD5_Final
.
MD5()
может занять большую часть времени, но если вы хотите уменьшитьвремя sprintf
, затем выполните шестнадцатеричную строку вручную.
Подобным образом:
{
static const char hexDigits[16] = "0123456789ABCDEF";
unsigned char digest[MD5_DIGEST_LENGTH];
char digest_str[2*MD5_DIGEST_LENGTH+1];
int i;
// Count digest
MD5( (const unsigned char*)msg.c_str(), msg.length(), digest );
// Convert the hash into a hex string form
for( i = 0; i < MD5_DIGEST_LENGTH; i++ )
{
digest_str[i*2] = hexDigits[(digest[i] >> 4) & 0xF];
digest_str[i*2+1] = hexDigits[digest[i] & 0xF];
}
digest_str[MD5_DIGEST_LENGTH*2] = '\0';
std::cout <<"\nResult:"<< digest_str <<endl;
}
не проверено, поэтому могут быть ошибки.