代码 1
uint8_t ucAESKey_BASE64[] = "oFqTg0a0VrjiVU76M1WRVw==";
uint8_t *pucAESKey_BASE64;
pucAESKey_BASE64 = ucAESKey_BASE64;
代码 2
uint8_t *pucAESKey_BASE64 = "oFqTg0a0VrjiVU76M1WRVw==";
我使用mbedtls_base64_decode()解码 base64 字符串,mbedTLS 的 API。
int mbedtls_base64_decode( unsigned char *dst, size_t dlen, size_t *olen,
const unsigned char *src, size_t slen )
我的程序是这样的:</p>
mbedtls_base64_decode(ucAESKey, sizeof(ucAESKey), &olen,
pucAESKey_BASE64, strlen(pucAESKey_BASE64));
如果参数*src使用代码 2 ,则输出为
00 00 00 83 46 b4 56 b8 e2 55 4e fa 33 55 91 57
如果 *src 使用代码 1,则输出为
a0 5a 93 83 46 b4 56 b8 e2 55 4e fa 33 55 91 57
这是正确的。为什么?