单片机固件MD5校验、AES加密、gzip压缩方案(QT)

方案简介

  先使用glib对固件进行压缩;然后使用MD5对固件进行添加头部校验值;最后使用AES对固件进行加密。

MD5

   MD5,全称Message Digest Algorithm 5,即信息摘要算法5,是一种被广泛使用的密码散列函数。它可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在RFC 1321标准中被加以规范。

   MD5的功能(作为校验值)可以看这一篇:MD5数据加密方法

AES加密

   AES加密,全称Advanced Encryption Standard,是一种对称的分组加密技术。它使用128位分组加密数据,每次加密16个字节,提供比WEP/TKIPS的RC4算法更高的加密强度。AES的加密码表和解密码表是分开的,并且支持子密钥加密,这种做法优于以前用一个特殊的密钥解密的做法。此外,AES算法支持任意分组大小,初始时间快,特别是它具有的并行性可以有效地利用处理器资源。
  AES算法具有以下优点:

  1. 应用范围广:可以用来加密数据、电子邮件和网络传输,以保护隐私和网络数据的安全性。
  2. 等待时间短:相对于其他加密算法,AES加密速度较快。
  3. 相对容易隐藏:AES加密算法相对容易隐藏,不容易被破解。
  4. 吞吐量高:能够提供高吞吐量,适用于大规模的数据加密。

  此外,AES加密的安全性非常高,它使用128位、192位或256位的密钥,可以抵抗各种类型的攻击,包括密码穷举攻击、密码分析攻击和密码拓展攻击。因此,AES加密算法被认为是目前世界上最安全、最先进的加密算法之一。

  AES的具体功能及其实现原理可以参考这一篇:AES加密算法原理的详细介绍与实现

gzip

  gzip是一个使用广泛的压缩程序,最早由Jean-loup Gailly和Mark Adler创建,用于UNⅨ系统的文件压缩。它可以用来压缩文件,压缩后的文件名通常会添加“.gz”的扩展名。gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成linux操作系统中比较流行的压缩文件格式。

  zlib是一套通用的解压缩开源库,提供了内存(in-memory)压缩和解压函数,能检测解压出来的数据完整性,支持读写gzip(.gz)格式的文件。该库使用DEFLATE算法压缩数据部分,这是一种Huffman编码的加强。

  本次研究的是在QT上面使用glib库。

  glib库的简介和主要函数的功能可以看这一篇:第三方库介绍——zlib库

在QT中使用MD5、AES、glib

QT环境

  必须使用MinGW来构建项目

MD5

  使用QT内嵌的QCryptographicHash库,这个库提供了以下加密类型,这里只使用了MD5。

类型 描述
QCryptographicHash::Md4 0 Generate an MD4 hash sum
QCryptographicHash::Md5 1 Generate an MD5 hash sum
QCryptographicHash::Sha1 2 Generate an SHA-1 hash sum
QCryptographicHash::Sha224 3 Generate an SHA-224 hash sum (SHA-2). Introduced in Qt 5.0
QCryptographicHash::Sha256 4 Generate an SHA-256 hash sum (SHA-2). Introduced in Qt 5.0
QCryptographicHash::Sha384 5 Generate an SHA-384 hash sum (SHA-2). Introduced in Qt 5.0
QCryptographicHash::Sha512 6 Generate an SHA-512 hash sum (SHA-2). Introduced in Qt 5.0
QCryptographicHash::Sha3_224 RealSha3_224 Generate an SHA3-224 hash sum. Introduced in Qt 5.1
QCryptographicHash::Sha3_256 RealSha3_256 Generate an SHA3-256 hash sum. Introduced in Qt 5.1
QCryptographicHash::Sha3_384 RealSha3_384 Generate an SHA3-384 hash sum. Introduced in Qt 5.1
QCryptographicHash::Sha3_512 RealSha3_512 Generate an SHA3-512 hash sum. Introduced in Qt 5.1
QCryptographicHash::Keccak_224 7 Generate a Keccak-224 hash sum. Introduced in Qt 5.9.2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值