一、 前言
签名讲过使用我们使用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 的生成原