我有一個使用AES加密編碼的char *字符串。該字符串包含大量的十六進制字符,而不僅僅是ASCII可查看的字符。我需要轉換此字符串,以便我可以通過HTTP發送它,它不接受加密算法生成的所有字符。將AES加密字符串轉換爲C++中的十六進制
轉換此字符串的最佳方法是什麼?我使用了下面的函數,但有很多空格(0xFF),它不能轉換所有的字符。
char *strToHex(char *str){
char *buffer = new char[(dStrlen(str)*2)+1];
char *pbuffer = buffer;
int len = strlen(str);
for(int i = 0; i < len ; ++i){
sprintf(pbuffer, "%02X", str[i]);
pbuffer += 2;
}
return buffer;
}
謝謝 賈斯汀
是什麼讓你認爲你不能通過HTTP發送二進制數據?只要您使用正確的標頭和有效的HTTP請求,就不會有問題。準確的「內容長度」標題或適當的分塊編碼是必要的。 –