一、 前言
签名讲过使用我们使用AES加密算法与服务端进行数据加解密交互,对AES来说,secret key,如果我们把key硬编码在代码里面,被逆向后也很容易找到对应的key,隐藏我们需要设计一套算法来保证key是动态生成,不是硬编码在代码里。这里我们使用MD5以及DES来增加算法的破解难度,其中的核心是MD5摘要算法,它的出现保证了secret key的产生不是唯一的。
二、具体实现方案
1)MD5介绍
参考百度百科:https://baike.baidu.com/item/MD5/212708?fr=aladdin
MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。具有以下特点:
- 压缩性:任意长度的数据,算出的MD5值长度都是固定的。
- 容易计算:从原数据计算出MD5值很容易。
- 抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
- 强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
MD5作用:
把一个任意长度的字节串变换成一定长的十六进制数字串,只要原始内容不变,产生的摘要内容就不会变。
结合MD5生成一个AES Secret Key
secrete key 的生成原理,对任意一个字符进行MD5,取出MD值,与对应长度key进行位运算,保证产生的index在目标数据的长度范围内,再根据index取出值,从而生成secret key。具体实现代码如下:
#include <string>
#include "openssl/md5.h"
using namespace std;
cons

本文探讨了MD5摘要算法和DES算法在AES秘钥动态生成中的应用,通过结合这两种算法,增加了秘钥的安全性和破解难度。文章详细介绍了MD5的特性及其实现,以及如何利用MD5生成AES秘钥,并进一步通过DES算法增强安全性。
最低0.47元/天 解锁文章
1182

被折叠的 条评论
为什么被折叠?



