MD5和Base64加密与解密的算法特点与简单使用

本文详细介绍了MD5和Base64两种算法的特点及应用场景。MD5是一种不可逆的加密算法,常用于验证数据完整性和用户认证;Base64则是一种可逆的编码方式,用于将二进制数据转换为文本格式,便于在网络上传输。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MD5和Base64

Base64加密属于可逆性的加密,意思就是既可以加密,也可以解密。
而MD5加密属于不可逆性的加密,只能够给我们提供加密的方式,却没有解密的方式,一般情况多应用与登录注册界面。

MD5算法特点

MD5算法具有以下特点:
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

java中使用MD5算法的工具类代码如下:
public class MD5Utils {
	public static String encode(String resStr) {
		String encodeStr=DigestUtils.md5Hex(resStr);
		return encodeStr;
	}

}

Base64算法特点

1、将数据按照 3个字节一组的形式进行处理,每三个字节在编码之后被转换为4个字节。即:如果一个数据有6个字节,可编码后将包含6/3*4=8个字节。
2、当数据的长度无法满足3的倍数的情况下,最后的数据需要进行填充操作,即补“=” ,这里“=”是填充字符,不要理解为第65个字符
3、Base64是编码算法,不是加密算法,只是用来编码字节数组,形成字符串的,并提供了解码功能。

java中使用Base64算法的工具类如下:
public class Base64Utils {
	public static String encodeByBase64(String srcStr) {
		Base64 base=new Base64();
		String encodeToString="";
		try {
			encodeToString = base.encodeToString(srcStr.getBytes("UTF-8"));
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		};
		return encodeToString;
	}
	
	public static String decodeByBase64(String encodeStr) {
		Base64 base=new Base64();
		String decodeStr="";
		byte[] decode = base.decode(encodeStr);
		try {
			decodeStr=new String(decode,"UTF-8");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		return decodeStr;
	}
}

注:这两个工具类的使用都要引入外界的jar包,jar包地址为:
https://download.youkuaiyun.com/download/zhuhuihui123/11227620

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值