Java之MD5加密

本文详细介绍了如何在Java中使用MD5加密算法对字符串进行不可逆加密,包括在MySql中直接使用MD5函数和在MyEclipse10中通过java.security.MessageDigest实现的方法。MD5加密结果为32位十六进制,适用于密码等敏感信息的安全存储。

Java之MD5加密

MD5加密用来对字符串加密,不可以逆转解密。加密之后默认为32位的十六进制。

在MySql中可以直接使用MD5函数,如下:

修改密码为字符串“ZYJ”的MD5加密。
在这里插入图片描述
从下图可以看出使用MD5加密字符串“ZYJ”为9d2dc2f4168f1121bf8c2dd6879abcf4,是一串32位的十六进制。因此在设计表时,对于需要进行MD5加密的字段长度需大于32。
在这里插入图片描述

在MyEclipse 10中同样可以使用MD5加密,需引进java.security.MessageDigest和java.security.NoSuchAlgorithmException,方法如下:
public final static String getMD5(String s){
   	char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
   	try {
   		byte[] btInput = s.getBytes();
   		MessageDigest mdInst = MessageDigest.getInstance("MD5");
   		mdInst.update(btInput);
   		//获得密文
   		byte[] md = mdInst.digest();
   		//把密文转换成十六进制的字符串形式
   		int j = md.length;
   		char str[] = new char[j * 2];
   		int k = 0;
   		for (int i = 0; i < j; i++) {
   			byte byte0 = md[i];
   			str[k++] = hexDigits[byte0>>> 4 & 0xf];
   			str[k++] = hexDigits[byte0 & 0xf];
   		}
   		return new String(str);
   	} catch (NoSuchAlgorithmException e) {
   		return null;
	}
}

执行方法得到的结果与MySql中的MD5函数一致,如下图所示:
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

新鑫吖

你的鼓励将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值