java 代码实现MD5加密

MD5加密是一种我们日常开发中经常使用到的加密方式。

MD5加密的特点:
1.操作简单。
2.不可逆向解密。

话不多说,下面介绍两种在java代码中使用MD5:

方式一:

package com.xh.utils;

import java.security.MessageDigest;

public class MD5Util {

	/**
	 * MD5加密
	 * @param s:要加密的字符串
	 * @return:密文
	 */
	public static String MD5(String s) {
	    try {
            // MessageDigest对象的getInstance方法可以返回实现指定摘要算法
	        MessageDigest md = MessageDigest.getInstance("MD5");
	        // digest方法传递一个字节数组,然后对字节数组进行摘要计算,返回的字节数组长度为 16
			byte[] bytes = md.digest(s.getBytes("utf-8"));
			return toHex(bytes);
	    } catch (Exception e) {
	        throw new RuntimeException(e);
	    }
	}

	/**
	 * 把MD5加密后的字节数组进行有规律的替换
	 * @param bytes:MD5加密的字节数组
	 * @return:返回替换后的密文
	 */
	private static String toHex(byte[] bytes) {
	    final char[] HEX_DIGITS = "0123456789ABCDEF".toCharArray();
	    StringBuilder ret = new StringBuilder(bytes.length * 2);
	    for (int i=0; i<bytes.length; i++) {
	        ret.append(HEX_DIGITS[(bytes[i] >> 4) & 0x0f]);
	        ret.append(HEX_DIGITS[bytes[i] & 0x0f]);
	    }
	    return ret.toString();
	}

}

方式二:该方式参照 MD5加密是什么?为什么不可解密?_md5为什么不能解密-CSDN博客

1.先导入依赖

            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.3.2</version>
            </dependency>

2.MD5工具类

package com.jd.test;
 
import org.apache.commons.codec.digest.DigestUtils;
 
import java.security.MessageDigest;
 
 
public class MD5 {
    /**
     * MD5方法
     * 
     * @param text 明文
     * @param key 盐值
     * @return 密文
     * @throws Exception
     */
    public static String md5(String text, String key) throws Exception {
        //加密后的字符串
        String encodeStr=DigestUtils.md5Hex(text + key);
        System.out.println("MD5加密后的字符串为:encodeStr="+encodeStr);
        return encodeStr;
        }
 
    /**
     * MD5验证方法
     * 
     * @param text 明文
     * @param key 盐值
     * @param md5 密文
     * @return true/false
     * @throws Exception
     */
    public static boolean verify(String text, String key, String md5) throws Exception {
        //根据传入的密钥进行验证
        String md5Text = md5(text, key);
        if(md5Text.equalsIgnoreCase(md5))
        {
            System.out.println("MD5验证通过");
            return true;
        }
 
            return false;
    }
}

本文为学习笔记,所参考文章均已附上链接,若有疑问请私信!

新手小白,欢迎留言指正!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值