一、定义
MD5:全称为Message-DigestAlgorithm,是一种被广泛使用的密码散列函数,可以产生出一个128位(16个字节)的散列值,用于确保信息传输完全一致。
AES:而AES算法是一种分组加密算法,把明文分成一组一组的形式,保证每组的长度相等,每组加密一组数据,直到加密完整个明文。在AES标准中,分组长度只能为128位,16个字节,并且是按照字节进行加密的。密钥的长度可以使用128位,192位或者256位。
二、特点
MD5:
1.长度固定:不管字符串多长,加密后的长度都一样
2.容易计算:字符串和文件加密的过程都是容易的
3.不可逆性:即使你知道密文和加密方式,但是你仍然无法计算得出原本的密码。
AES:
1.运算速度快
2.对内存的需求低,适合那些被限制的环境
3.分组长度和密钥长度设计灵活
4.AES支持可变分组长度,也就是说他的分组长度不是固定的,可以为32比特的任意倍数
三、MD5和AES的区别
首先AES属于对称加密算法,而MD5属于Hash算法;
其次AES的加密速度非常快,适合处理大量数据,并且处理的数据可以复原,而MD5算法用于完整
性,确保信息在传输过程中保持一致;在密码加密方面,数据库中不存储密码明文,而是存储散列
值,校验时比较散列值是否相同。
四、在项目中的使用方式
首先MD5:
我们在使用MD5主要在于项目的注册登录页面,要输入密码,当我们将密码存入数据库的时候就可以利用MD5算法加密后存入,用于保证数据的安全性。
public class UserService {
// 32位长度秘钥
private static final String AEC_KEY = "1234567890abcdef1234567890abcdef";
// 根据手机号码和登录密码查找用户
public User getUserByPhoneNumberAn