STM32使用mbedtls的AES加密

mac2025-04-08  13

一、安装mbedtls

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

            

 二、加载mbedtls

加载mbedtls

修改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"

验证结果:

两个加密结果一致!!!

最新回复(0)