说明:

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的实现例程的更多相关文章

  1. 基于OpenSLL的RSA加密应用(非算法)

    基于OpenSLL的RSA加密应用(非算法) iOS开发中的小伙伴应该是经常用der和p12进行加密解密,而且在通常加密不止一种加密算法,还可以加点儿盐吧~本文章主要阐述的是在iOS中基于openSL ...

  2. 探讨数据进行AES加密和解密以及.NET Core对加密和解密为我们提供了什么?

    前言 对于数据加密和解密每次我都是从网上拷贝一份,无需有太多了解,由于在.net core中对加密和解密目前全部是统一了接口,只是做具体的实现,由于遇到过问题,所以将打算基本了解下其原理,知其然足矣, ...

  3. <经验杂谈>C#使用AES加密解密的简单介绍

    AES 算法是基于置换和代替的.置换是数据的重新排列,而代替是用一个单元数据替换另一个.AES 使用了几种不同的技术来实现置换和替换. 以下是我自己用c#研究出来算法Code: /// <sum ...

  4. 探讨.NET Core中实现AES加密和解密以及.NET Core为我们提供了什么方便!

    前言 对于数据加密和解密每次我都是从网上拷贝一份,无需有太多了解,由于在.net core中对加密和解密目前全部是统一了接口,只是做具体的实现,由于遇到过问题,所以将打算基本了解下其原理,知其然足矣, ...

  5. Java 关于密码处理的工具类[MD5编码][AES加密/解密]

    项目中又遇到了加密问题,又去翻了半天,然后做测试,干脆就把常用的两类小结一下. 1.第一种所谓的MD5加密 其实也不算加密,只是基于Hash算法的不可逆编码而已,等于说,一旦经过MD5处理,是不可能从 ...

  6. Python3使用AES加密的库函数PyCrypto、PyCryptodome

    我们在网上查看Python爬虫教程的时候,细心的朋友会发现:很多网站为了降低服务器的请求压力都做了各式各样的反爬策略,浏览器通过http post请求服务器端数据时,传输的data字段很多都是经过加密 ...

  7. 信息安全-加密:AES 加密

    ylbtech-信息安全-加密:AES 加密 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一 ...

  8. 你真的了解字典(Dictionary)吗? C# Memory Cache 踩坑记录 .net 泛型 结构化CSS设计思维 WinForm POST上传与后台接收 高效实用的.NET开源项目 .net 笔试面试总结(3) .net 笔试面试总结(2) 依赖注入 C# RSA 加密 C#与Java AES 加密解密

    你真的了解字典(Dictionary)吗?   从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点.为了便于描述,我把上面 ...

  9. Android AES加密工具类实现(基础回顾)

    package com.powercreator.cms.util; import java.security.SecureRandom; import javax.crypto.Cipher; im ...

随机推荐

  1. 程序员的进阶课-架构师之路(14)-B+树、B*树

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/de ...

  2. mybatis的@Options的使用

    1.问题: 我采用的是mybatis的注解方式,打算插入一条数据之后返回主键,但是试了好几次都是返回的影响的记录数:1, @Insert(****) @Options(useGeneratedKeys ...

  3. supersocket/SocketEngin/BootstrapFactory.cs 详解

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using SuperSoc ...

  4. 【项目管理】Mybatis-Generator之最完美配置详解

    今天看到了一篇总结特别详细的关于Mybatis-Generator配置文件的文章,特转载进行记录学习使用. 先附上原文地址链接:张思全----全哥文章 <?xml version="1 ...

  5. WPF 使用Win32API 让控件置于WebBrowser上方

    WPF中Webbrowser控件使用HwndHost所以webbrowser会在所有控件的前方.所以webbrowser会覆盖所有同级的控件. 现在通过使用Win32API 可以避免这个情况. 最主要 ...

  6. 【开发者portal在线开发插件系列一】profile和基本上下行消息

    前言: 开发者portal支持在线开发profile(即设备建模).在线开发插件.模拟应用管理设备.模拟设备上报数据接收命令.支持离线开发的profile和插件的上传部署,是合作伙伴快速集成设备.对接 ...

  7. JGit----将 Git 嵌入你的应用

    如果你想在一个 Java 程序中使用 Git ,有一个功能齐全的 Git 库,那就是 JGit . JGit 是一个用 Java 写成的功能相对健全的 Git 的实现,它在 Java 社区中被广泛使用 ...

  8. ubuntu部署.Net Core3.1(Nginx+pm2)

    前言 虽然.NetCore已经出来很久了,但是很多初学者还是不会在linux部署.所以写一篇初学者在ubuntu下部署Core的全过程,大佬请无视. 环境搭建 ubuntu18.04 NetCore3 ...

  9. luogu P2899 [USACO08JAN]手机网络Cell Phone Network |贪心

    include include include include include include define db double using namespace std; const int N=1e ...

  10. 并查集 2019年8月10日计蒜客联盟周赛 K.数组

    题目链接:https://nanti.jisuanke.com/t/40860 题意:给一个长度为n的数组a[],n<1e5,a[i]<1e5 三个操作: 1 x y:把所有值为x的数据改 ...