此处我用的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"验证结果:
两个加密结果一致!!!