Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 C++ 中,我有一个 AES 加密的 char*,在将其作为 URL 参数发送之前,我将其转换为它的 HEX 表示,就像在这个问题中所做的那样。现在,我想做相反的事情,即再次将此类十六进制转换回 char*。但是我在这里感到困惑-将 sprintf 与 %x 或 %s 一起使用会导致完全不同的值。我怎么能再次转换回来?谢谢...
你可以sscanf()这样使用:
sscanf()
#define LEN 16 /* 128/8 */ void aes_to_char(char *aes, char *res) { int i; for (i = 0; i < LEN; i++) { sscanf(aes, "%2hhx", &res[i]); aes += 2; } }
"%2hhx"表示“一个 2 个字符的十六进制值,要存储在char *.
"%2hhx"
char *