MD5
1、MD5即Message-Digest Algorithm 5, 信息学中使用广泛的哈希算法
这个算法具有很多性质:
- 压缩性: 对于任意长度的输入, 输出长度总是相同的
- 容易计算: 线性时间复杂度
- 抗修改性: 对原数据的一点点修改都会导致最终结果的巨大变化
- 抗碰撞性: 已知原数据和MD5值很难生成与原数据不同但MD5值相同的数据
MD5可以生成任意一个文件的“数字指纹”,对文件的微小改动都会直接导致数字指纹的巨大变化。
注:MD5加密中文需要使用UTF-8编码,但Windows下默认是GBK编码,两种编码得到的结果是不一样的
2、用于密码管理
当我们需要保存某些密码信息以用于身份确认时,如果直接将密码信息以明码方式保存在数据库中,不使用任何保密措施,系统管理员就很容易能得到原来的密码信息,这些信息一旦泄露, 密码也很容易被破译。为了增加安全性,有必要对数据库中需要保密的信息进行加密,这样,即使有人得到了整个数据库,如果没有解密算法,也不能得到原来的密码信息。MD5算法可以很好地解决这个问题,因为它可以将任意长度的输入串经过计算得到固定长度的输出,而且只有在明文相同的情况下,才能等到相同的密文,并且这个算法是不可逆的,即便得到了加密以后的密文,也不可能通过解密算法反算出明文。这样就可以把用户的密码以MD5值(