我碰到過這段代碼here。這個C代碼片斷是什麼意思?
result = HMAC(EVP_md5(), key, 32, data, 28, NULL, NULL);
for (i = 0; i < result_len; i++) {
sprintf(&(res_hexstring[i * 2]), "%02x", result[i]);
}
循環做了什麼?特別是&(res_hexstring[i * 2])
是什麼意思?難道你不能像數組一樣迭代結果嗎?爲什麼它是一個整數?
十六進制字符串字符的八位組表示爲'00'到'FF'。你一次可以做到這一點,但這樣做有什麼意義,*相當多的工作沒有收穫?你可以假設'res_hexstring'用在除了轉儲到控制檯之外的地方,否則是'sprintf'沒有意義,可以用'printf'來完成。 – WhozCraig 2014-11-04 03:01:43
,爲什麼你不能使用printf? – w774 2014-11-04 03:01:51