5.Md5加密(生成md5编码格式数据)和验证登录

本文介绍了如何使用Java实现MD5加密算法,并提供了一个用于验证登录的实用方法。通过MessageDigest类实现MD5摘要算法,将输入字符串转换为固定长度的摘要,用于密码的安全存储。同时,提供了一个md5Compare方法,用于比较用户输入的密码与数据库中存储的MD5加密密码,以完成用户登录验证。
import javax.xml.bind.DatatypeConverter;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

加密:

public static String getMd5(String source) {
	//MessageDigest 为应用程序提供信息摘要算法的功能
    MessageDigest md = null;
    try {
   		 //返回实现指定摘要算法的 MessageDigest 对象
        md = MessageDigest.getInstance("MD5");
    } catch (NoSuchAlgorithmException e) {
        throw new BsException(ErrorConstant.C000, ErrorConstant.M000, "md5生成失败");
    }
    //将传入的密码转为 byte数组 更新摘要
    md.update(source.getBytes());
    //在调用此方法之后,摘要被重置
    byte[] digest = md.digest();
    // printHexBinary:将一个byte[]数组编码成一个String类型
    //将String类型的数据中的字母都转为大写
    return DatatypeConverter.printHexBinary(digest).toUpperCase();
}

验证登录:

PS:和上面的方法与在一个工具类中

//source:前台传入的密码    md5:数据库中存储的密码
public static boolean md5Compare(String source, String md5) {
		//断言类中的方法判断,即判断传入的密码不是null也不是“”
        Assert.notBlock(source, ErrorConstant.C000, ErrorConstant.M000, "md5比较失败");
        //将传入的密码使用上面的方法进行Md5加密
        String sourceMd5 = getMd5(source);
        //将加密后的密码与数据库中的进行判断
        return sourceMd5.equals(md5);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值