你还在用MD5吗?

前言

MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。

MD5,曾经红极一时的不可逆加密算法,被应用于各行各业中。尤其在数据安全和传输领域,贡献颇丰。
1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。
2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。

在这里插入图片描述

因此,在如今越来越注重数据安全的时代,安全始终是首要考虑的目标。这里不得不介绍一下新的替代工具了:BCryptPasswordEncoder

BCryptPasswordEncoder

1.简介

BCryptPasswordEncoderspring-secrity提供的数据加密方案,示意图如下:
在这里插入图片描述
它采用HASH算法,通过SHA-256 + 随机盐 + 密钥对数据进行加密。哈希(Hash)是将目标文本转换成具有相同长度的、不可逆的杂凑字符串(或叫做消息摘要),所以如果逆向破解,简直比"蜀道难" 还难~

2.如何使用

这里的核心是encodematchs的使用。
在这里插入图片描述

2.1 加密

使用encode完成文本加密,代码示意如下:

//创建BCryptPasswordEncoder 
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
//加密
String text = "hello 三度经纬";
//输出hash值,另存
String hash = passwordEncoder.encode(text);
2.2 验证
//创建BCryptPasswordEncoder 
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
//验证是否正确
boolean isValid = passwordEncoder.matches("明文", "密文");

结语

写代码时,必须优先考虑安全,就像采矿一定要提前准备好安全帽一样。博主偶得有一句话:“没有绝对的安全,只有不懈的努力”
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值