#include <stdint.h>
#include <stdio.h>
#define KEYS_LEN 16
#define DATA_LEN 9
static void printArray(uint8_t *array, int len) {
for (int i = 0; i < len; i++) {
printf("%02x ", array[i]);
}
printf("\n");
}
static void str2hex(char *str, uint8_t *hex, int len) {
for (int i = 0; i < len; i++) {
int number;
sscanf(str + i * 2, "%02x", &number);
hex[i] = number;
}
}
int main(void) {
uint8_t keys[KEYS_LEN] = {0};
uint8_t data[DATA_LEN] = {0};
str2hex("B8B34DA2D4C4D578D8494390E3DFE7A7", keys, KEYS_LEN);
str2hex("434D41432054657374", data, DATA_LEN);
printArray(keys, KEYS_LEN);
printArray(data, DATA_LEN);
return 0;
}
Reference:
这篇文章展示了如何使用C语言中的str2hex函数将字符串转换为十六进制数组,并以printArray函数打印出来,以MbedTLS库的rsa_decrypt.c文件中的相关代码为例。

437

被折叠的 条评论
为什么被折叠?



