【发布时间】:2020-07-03 20:34:01
【问题描述】:
我正在开发一个接收加密字符串的程序。为此,我使用tiny-AES-c 库。
我收到的加密字符串是char*。为了将字符串与函数AES_CBC_decrypt_buffer(struct AES_ctx* ctx, uint8_t* buf, uint32_t length) 一起使用,我需要将字符串转换为uint8_t []。
这就是 tiny-AES-c 库喜欢这种格式的方式,如他们的 test.c 所示:
uint8_t in[] = { 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a };
有人告诉我这可以使用strtoul 来实现。我已经对此功能进行了相当多的研究,但似乎找不到与我遇到的问题相关的任何问题/文档/示例。
我的问题是,如何将char* 的内容转换为uint8_t [] 数组,格式类似于上面的sn-p?
【问题讨论】:
-
在 C 中这是为您完成的,数组衰减为指针,除非您正在做一些非常奇怪的事情。您需要拨打的电话在哪里不起作用?
strtoul不是这里的答案。 -
只需使用演员表...
-
@tadman 你的意思是
in[]无论如何都会变成一个指针,这意味着我可以做类似uint8_t in[] = "This is my text";的事情吗? -
一开始就将其声明为指针,忘记
[]的废话。char*无论如何只是一个通用的“字符缓冲区”。 -
是什么让您认为首先需要转换为
uint8_t []?在你继续之前,我会纠正这个误解。
标签: c type-conversion