终版
This commit is contained in:
@@ -23,6 +23,7 @@ static const uint8_t AES_IV[16] = {
|
||||
|
||||
static struct AES_ctx aes_ctx;
|
||||
|
||||
/* 函数作用:初始化 AES 加密上下文。 */
|
||||
void Crypto_Init(void)
|
||||
{
|
||||
// 初始化AES上下文(使用CBC模式)
|
||||
@@ -33,6 +34,7 @@ void Crypto_Init(void)
|
||||
* @brief PKCS#7填充
|
||||
* 将数据填充到16字节的倍数
|
||||
*/
|
||||
/* 函数作用:为 JSON 明文追加 PKCS#7 填充。 */
|
||||
static uint32_t pkcs7_pad(uint8_t* data, uint32_t data_len, uint32_t buffer_size)
|
||||
{
|
||||
// 计算需要填充的字节数
|
||||
@@ -52,6 +54,7 @@ static uint32_t pkcs7_pad(uint8_t* data, uint32_t data_len, uint32_t buffer_size
|
||||
return data_len + padding_len;
|
||||
}
|
||||
|
||||
/* 函数作用:移除解密结果中的 PKCS#7 填充。 */
|
||||
static uint32_t pkcs7_unpad(uint8_t* data, uint32_t data_len)
|
||||
{
|
||||
uint8_t padding_len;
|
||||
@@ -75,6 +78,7 @@ static uint32_t pkcs7_unpad(uint8_t* data, uint32_t data_len)
|
||||
return data_len - padding_len;
|
||||
}
|
||||
|
||||
/* 函数作用:将 JSON 字符串 AES-CBC 加密并 Base64 编码输出。 */
|
||||
uint32_t Crypto_EncryptJSON(const char* json_data, char* encrypted_output)
|
||||
{
|
||||
uint32_t json_len = strlen(json_data);
|
||||
@@ -121,6 +125,7 @@ uint32_t Crypto_EncryptJSON(const char* json_data, char* encrypted_output)
|
||||
return encoded_len;
|
||||
}
|
||||
|
||||
/* 函数作用:将 Base64 密文解码并 AES-CBC 解密为 JSON 字符串。 */
|
||||
uint32_t Crypto_DecryptJSON(const char* encrypted_base64, char* plain_output, uint32_t output_size)
|
||||
{
|
||||
uint32_t encrypted_len;
|
||||
|
||||
Reference in New Issue
Block a user