STM32使用mbedtls的AES加密
標簽: STM32
Author:果果小師弟 電子信息專業在讀研究生
有一點思考,有一點想法,有一點理性!
定個小小目標,努力成為習慣!在最美的年華遇見更好的自己!
CSDN@果果小師弟,CSDN首發,果果原創
唯一博客更新的地址為: 果果小師弟的博客
一、安裝mbedtls
轉到keil官網http://www.keil.com/dd2/pack/
找到ARM mbed Cryptographic and SSL/TLS library for Cortex-M devices并下下載
2.安裝下載的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"
驗證結果:
兩個加密結果一致!!!
??本次的分享就到這里
好書不厭百回讀,熟讀自知其中意。將學習成為習慣,用知識改變命運,用博客見證成長,用行動證明努力。
如果我的博客對你有幫助、如果你喜歡我的博客內容,請 “點贊” “評論” “收藏” 一鍵三連哦!
聽說 點贊 的人運氣不會太差,每一天都會元氣滿滿呦!^ _ ^ ? ? ?
碼字不易,大家的支持就是我堅持下去的動力。點贊后不要忘了 關注 我哦!
更多精彩內容請前往 果果小師弟的微信公眾號
如果以上內容有任何錯誤或者不準確的地方,歡迎在下面 留個言。或者你有更好的想法,歡迎一起交流學習~~~
智能推薦
STM32之PWM的使用
1. 時鐘的配置 在時鐘樹上面,PWM對應的外設時鐘為APB1 Timer Clock, 48MHz. 2. PWM通道的配置 選擇內部時鐘,也就是說基準頻率為48MHz,通道使能CH1、CH2、CH3,其余不變。 Period=2400,也就是說PWM的頻率為48000KHz/2400=20KHz Pulse設置為1200表示高電平占用的時間 Fast Mode勾選,快速輸出管腳電平,其余不變。...
【STM32】SysTick的使用
SysTick的使用 前提 寄存器介紹 CTRL LOAD VAL CALIB 延時函數 前提 最近,在學習STM32的嵌入式開發,使用的是STM32F103C8T6,在使用延時函數時注意到SysTick模塊,故進行學習。STM32F103C8T6使用的是M3內核,本文亦是參考M3內核文檔PM0056和STM32寄存器手冊RM0008完成。 SysTick是單片機內核中的一個計數器,可與總線時鐘并...
STM32 串口的使用
STM32 串口的使用–以串口調試助手為例 @(STM32基本外設) 串口介紹 USART ((Universal Synchronous Asynchronous Receiver and Transmitter, 通用同步異步收發器), 是一 個串行通信設備,可以靈活地與外部設備進行全雙工數據交換。有別于 USART 還有一個 UART(Universal Asynchronous...
stm32 學習之 keil4 添加mbedTLS 包
下載mbedTLS 包 git clone https://github.com/ARMmbed/mbedtls.git 添加到工程,人比較懶 全部添加 添加全局宏定義 修改需要的功能 mbedTLS_config.h 編譯(如果不添加 全局宏定義,可能會出現如下錯誤) 測試結果...
猜你喜歡
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...
Linux C系統編程-線程互斥鎖(四)
互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...