[英]MD5Convert to hex char in C
void MD5Convert(unsigned char* BufferMD5, unsigned char* DstMD5, int size)
{
unsigned char digest[16];
char buf[32];
int tmp_i;
int counter_DstMD5 = 0;
int i = 0;
//16 +16 = 32
char tmp_c[2];
for (i; i < size; i++)
{
tmp_i = BufferMD5[i];
//itoa(tmp_i, tmp_c, 16);
sprintf_s(tmp_c, "%02X", BufferMD5[i]);
DstMD5[counter_DstMD5] = tmp_c[0];
counter_DstMD5++;
DstMD5[counter_DstMD5] = tmp_c[1];
counter_DstMD5++;
}
}
視覺工作室給我以下信息:
“運行時檢查失敗 #2 - 圍繞變量 'tmp_c' 的堆棧已損壞。”
上面的代碼不適用於visual studio + c,我已經嘗試了一切,但它最終會在某個地方溢出。
抱歉,如果問題措辭不當,但我找不到可能的替代方案
sprintf_s(tmp_c, "%02X", BufferMD5[i]);
您需要 3 個字符來存儲兩個字符的字符串,因為您需要容納空終止字符。 tmp_c
太短,你寫的超出了它的范圍。
char tmp_c[3];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.