由此可以看到,数据进行打包后,在数据的头部和尾部都含由一个符合网络序的校验码 0xDEADC0DE,并且在头部结构体中包含了整 个数据各部分内容的偏移量等信息,这个机制保证了,一旦数据在传输过程中被截断或者被更改就可以很容易的检测到,对数据提供了初步的保护。 Step 1.2 AES 加密算法密钥的获取下面我们考虑 AES 的密钥如何选取。一般的,可以用用户密码的 MD5 值作为 AES 密钥,但是一旦入侵者监听到散列后的密码值,则比较危险。 而且,目前 MD5 算法已被破解。所以直接采用 MD5 来对用户密码进行散列得到密钥的做法是不太安全的。 如果我们在散列算法中加入特殊的密钥,来结合用户密码产生 AES 密钥,双重保证可以大大提高安全性。HMAC(Keyed-Hash Message Authentication Code) 刚好可以实现此策略。 HMAC 是一种经加密的散列消息验证码,是一种使用加密散列函数和密钥计算出来的一种消息验证码(MAC)。就像任何 MAC 一样,它也可以对信息数据的完 整性和真实性进行同步检查。查看参考资料中的“HMAC”获得更多关于 HMAC 的信息。 (责任编辑:admin) |