在计算机领域中,MD5(Message Digest Algorithm 5)是一种常用的哈希函数,用于产生数据的摘要(或称为散列值)。MD5 算法通常用于确保数据的完整性,验证文件完整性或加密存储在数据库中的密码等场景。然而,由于其漏洞已经被发现,并且存在碰撞攻击的风险,因此在一些安全性要求较高的场合中已经不再被推荐使用。
百度网盘的秒传功能(如果以前传过这个文件,又一次上传,因为可以找到这个md5值,可以直接秒传)
//密码进行MD5加密
BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
String encode = bCryptPasswordEncoder.encode(vo.getPassword());
//进行密码匹配
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
boolean matches = passwordEncoder.matches(明文密码, 密文密码);
明文密码:123456
密文密码:$2a$10$BWoWfirabjrR0Hoapz0y8upL47C1VvDpojg49qv65ul2UM4Gg8pi6
由于这里使用了加盐加密,密文中包含了盐,所以相同的明文会生成不同的密文
MD5 算法作为一种哈希函数,在数据完整性验证、密码存储等方面曾经被广泛应用。然而,由于其安全性漏洞和碰撞攻击的问题,现在已不再被推荐作为安全加密手段。在选择加密算法时,应该根据具体需求和安全性要求来选择更安全可靠的算法。