基于MbedTLS的AES加密实现,含STM32H7和STM32F4的实现例程
说明:
1、mbedTLS的前身是PolarSSL,开源免费。
主要提供了的SSL/TLS支持(在传输层对网络进行加密),各种加密算法,各种哈希算法,随机数生成以及X.509(密码学里公钥证书的格式标准)的支持。
2、mbedTLS支持的加密算法含对称加密和非对称加密
(1)mbedTLS支持的对称加密算法有:AES,ARCFOUR,Blowfish/BF,Camellia,DES/3DES,GCM,XTEA
加密和解密用到的密钥是相同的,加密速度快,适合数据收发通信,缺点是密钥的传输略麻烦。
(2)mbedTLS支持的非对称加密算法有:Diffie-Hellman-Merkle,RSA,Elliptic Curves over
GF(p),Elliptic Curve Digital Signature Algorithm (ECDSA)和Elliptic Curve
Diffie Hellman (ECDH)
加密和解密用的密钥是不同的,加密的速度慢,适合密钥的传输。
3、关于AES加密,简单的说就是下面图示,由密钥和要解码的数据,通过算法生成密文,然后发给接受者,接受者使用相应的密钥解密数据。

4、现在研究下这个,主要是方便后面新版RL-TCPnet V7.X教程和对应的物联网教程做好铺垫。

例子说明:
1、使用的256bit AES加密。
2、mbedTLS支持密钥种子和密钥的生成,其中密钥种子函数提示要在Windows或者unix平台才可以使用,所以程序里面直接用的密钥生成函数。
3、例子是采用AES的CBC模式,这种模式每次固定加密或解密16个字节的数据,不足16个时,补0。由于mbed的API做了封装,每次可以处理16字节的整数倍。
4、特别注意CBC模式有个初始化表IV,也是16个字节。大家使用的时候要保证加密端和接收端一致。
例程下载:
链接:https://pan.baidu.com/s/1pv3hogesXA2lESDtq2Ur5g 提取码:gnaw


安装最新的mbedTLS软件包:


测试效果:

基于MbedTLS的AES加密实现,含STM32H7和STM32F4的实现例程的更多相关文章
- 基于OpenSLL的RSA加密应用(非算法)
基于OpenSLL的RSA加密应用(非算法) iOS开发中的小伙伴应该是经常用der和p12进行加密解密,而且在通常加密不止一种加密算法,还可以加点儿盐吧~本文章主要阐述的是在iOS中基于openSL ...
- 探讨数据进行AES加密和解密以及.NET Core对加密和解密为我们提供了什么?
前言 对于数据加密和解密每次我都是从网上拷贝一份,无需有太多了解,由于在.net core中对加密和解密目前全部是统一了接口,只是做具体的实现,由于遇到过问题,所以将打算基本了解下其原理,知其然足矣, ...
- <经验杂谈>C#使用AES加密解密的简单介绍
AES 算法是基于置换和代替的.置换是数据的重新排列,而代替是用一个单元数据替换另一个.AES 使用了几种不同的技术来实现置换和替换. 以下是我自己用c#研究出来算法Code: /// <sum ...
- 探讨.NET Core中实现AES加密和解密以及.NET Core为我们提供了什么方便!
前言 对于数据加密和解密每次我都是从网上拷贝一份,无需有太多了解,由于在.net core中对加密和解密目前全部是统一了接口,只是做具体的实现,由于遇到过问题,所以将打算基本了解下其原理,知其然足矣, ...
- Java 关于密码处理的工具类[MD5编码][AES加密/解密]
项目中又遇到了加密问题,又去翻了半天,然后做测试,干脆就把常用的两类小结一下. 1.第一种所谓的MD5加密 其实也不算加密,只是基于Hash算法的不可逆编码而已,等于说,一旦经过MD5处理,是不可能从 ...
- Python3使用AES加密的库函数PyCrypto、PyCryptodome
我们在网上查看Python爬虫教程的时候,细心的朋友会发现:很多网站为了降低服务器的请求压力都做了各式各样的反爬策略,浏览器通过http post请求服务器端数据时,传输的data字段很多都是经过加密 ...
- 信息安全-加密:AES 加密
ylbtech-信息安全-加密:AES 加密 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一 ...
- 你真的了解字典(Dictionary)吗? C# Memory Cache 踩坑记录 .net 泛型 结构化CSS设计思维 WinForm POST上传与后台接收 高效实用的.NET开源项目 .net 笔试面试总结(3) .net 笔试面试总结(2) 依赖注入 C# RSA 加密 C#与Java AES 加密解密
你真的了解字典(Dictionary)吗? 从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点.为了便于描述,我把上面 ...
- Android AES加密工具类实现(基础回顾)
package com.powercreator.cms.util; import java.security.SecureRandom; import javax.crypto.Cipher; im ...
随机推荐
- Vue引入
Vue引入 概念: 1.el:实例 new Vue({ el: '#app' }) // 实例与页面挂载点一一对应 // 一个页面中可以出现多个实例对应多个挂载点 // 实例只操作挂载点内部内容 2. ...
- spring源码学习五 - xml格式配置,如何解析
spring在注入bean的时候,可以通过bean.xml来配置,在xml文件中配置bean的属性,然后spring在refresh的时候,会去解析xml配置文件,这篇笔记,主要来记录.xml配置文件 ...
- 2019-2020-1 20199304《Linux内核原理与分析》第二周作业
计算机工作原理 存储程序计算机模型 冯·诺依曼体系结构 冯·诺依曼体系结构如图所示: 冯·诺依曼体系结构包含五大部分 运算器:在控制器的统一控制下,负责对数据进行加工.完成各种运算,如算术运算.逻辑运 ...
- spring redis学习笔记
1.下载: https://github.com/MicrosoftArchive/redis/releases,并解压文件; 2.双击redis-server.exe,运行redis服务器; 3.双 ...
- unrecognized selector sent to class 0x10a4ce490 我躺过的坑
错误现象:unrecognized selector sent to class 0x102265ad8’ 错误原因: Other Linker Flags 链接设置错误导致类扩展不知道如何正确读取, ...
- CF 1136A 1136B 1136C 1136D 1136E(Round546ABCDE)题解
题目地址:https://codeforces.com/contest/1136 A: Nastya Is Reading a Book 题解:挨个判断即可,水题. 参考代码: #include< ...
- POJ 2559 Langest Rectangle in a Histogame
A histogram is a polygon composed of a sequence of rectangles aligned at a common base line. The rec ...
- .NetCore部署到CentOS
“天下熙熙,皆为利来:天下攘攘,皆为利往.”,越来越多的人涌入IT这个行业,使得技术发展日新月异之外,也会无情淘汰跟不上潮流的人,所以作为IT从业人员,一定要时刻关注前沿技术,免得有朝一日被拍在沙滩上 ...
- Python流程控制之循环结构
目录 while循环 for循环 嵌套循环 break.continue.pass 练习 当出现有规律或者是重复的事情就可以使用循环. 1.循环变量初始化 2.循环条件 3.循环体 4.改变循环变量 ...
- 2019年Dubbo你掌握的如何?快看看这30道高频面试题!
前言 Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式 ...