使用mbedtls实现文件以及字符串的AES加密

本文介绍了如何利用mbedtls库进行AES-128-CBC模式的加密和解密操作。示例代码展示了设置加密解密上下文、初始化密钥和初始化向量的过程,并提供了加密解密的完整流程,包括错误处理和内存管理。通过mbedtls提供的统一API,简化了加解密的实现。
  • 由于mbedtls主要支持TCP的TLS传输实现,由ARM公司加持,目前这个库的代码质量非常高,也可以用在其他加密解密领域,比如AES、DES、chacha20等加密,当然和libsodium实现互补,有些实现也必须用libsodium更好一些,不过这两个库的代码质量都很高。
  • 示例代码展现了AES-256-ECB的加密如何使用,由于库里面有很多加密支持,可以参考mbedtls github原始代码的cipher_wrap.c实现,这里面实现了统一API封装,方便使用,只需要初始化时给出对应的类型参数,即可获取相应handle方便使用。
#include <string.h>
#include <stdio.h>
#include <stdint.h>
#include "mbedtls/cipher.h"
#include "mbedtls/platform.h"

uint8_t key[16] =
{
   
   
    0x06, 0xa9, 0x21, 0x40, 0x36, 0xb8, 0xa1, 0x5b,
    0x51, 0x2e, 0x03, 0xd5, 0x34, 0x12, 0x00, 0x06
};

uint8_t iv[16] =
{
   
   
    0x3d, 0xaf, 0xba, 0x42, 0x9d, 0x9e, 0xb4, 0x30,
    0xb4, 0x22, 0xda, 0x80, 0x2c, 0x9f, 0xac, 0x41
};

static void dump_buf(char *info, uint8_t *buf
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值