STM32使用mbedtls的AES加密

一、安装mbedtls

  1. 转到keil官网http://www.keil.com/dd2/pack/
  2. 找到ARM mbed Cryptographic and SSL/TLS library for Cortex-M devices并下下载ARM mbed Cryptographic and SSL/TLS library for Cortex-M devices
  3. 安装下载的ARM.mbedTLS.1.6.0.pack文件

            

 二、加载mbedtls

  1. 加载mbedtls

  2. 修改mbedTLS_config.h文件。需要启用的宏如下。
    #define MBEDTLS_AES_ROM_TABLES
    #define MBEDTLS_CIPHER_MODE_CBC
    #define MBEDTLS_AES_C
    

     

三、应用mbedtls

此处我用的ECB模式的加密即可满足我的需要,所以应用了ECB模式。但是ECB模式只能实现16字节加密解密,如有需要更长字节请使用CBC模式。

#include "sys.h"
#include "delay.h"
#include "mbedtls/aes.h"
 
//密钥
unsigned char key[16] = "520199112301234";
//明文 
unsigned char plain[16] = "DaoBanMoJieYJW";
//密文
unsigned char cipher[16] = {0};
//解密后的明文
unsigned char plain_decrypt[16] = {0};

mbedtls_aes_context aes;

int main(void)
{ 
	delay_init(168);		  
	mbedtls_aes_init(&aes);	//初始化
	while(1)
	{

		mbedtls_aes_setkey_enc(&aes, key, 128);	//设置加密密钥
		mbedtls_aes_crypt_ecb(&aes, MBEDTLS_AES_ENCRYPT, plain, cipher);//ECB加密
		
		mbedtls_aes_setkey_dec(&aes, key, 128);//设置解密密钥
		mbedtls_aes_crypt_ecb(&aes, MBEDTLS_AES_DECRYPT, cipher, plain_decrypt);//ECB解密

		delay_ms(500);                     
	}
}

四、对比验证

随意找一个在线AES加密的。例如https://the-x.cn/cryptography/Aes.aspx

输入之前的明文和密钥

密钥 "520199112301234"
明文 "DaoBanMoJieYJW"

验证结果:

两个加密结果一致!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盗版摩羯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值