java 实现md5加密的三种方式与解密

java 实现md5加密的三种方式

CreateTime--2018年5月31日15点04分

Author:Marydon

一、解密

  Java没有实现解密,但有已有网站可以免费破解了!

  见文末相关推荐  

二、加密的三种方式

1.代码展示

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import org.apache.commons.codec.digest.DigestUtils;

/**
 * MD5技术加密解密
 */
public class MD5Utils {

    /**
     * MD5加密之方法一
     * 
     * @description 借助apache工具类DigestUtils实现
     * @param str
     * @return
     */
    public static String encryptToMD5(String str) {
        return DigestUtils.md5Hex(str);
    }

    /**
     * MD5加密之方法二
     * 
     * @description java实现
     * @param str
     * @return
     */
    public static String encrypt2ToMD5(String str) {
        String strDigest = "";
        try {
            // 此 MessageDigest 类为应用程序提供信息摘要算法的功能,必须用try,catch捕获
            MessageDigest md5 = MessageDigest.getInstance("MD5");
            // 转换为MD5码
            byte[] data = md5.digest(str.getBytes("utf-8"));
            strDigest = bytesToHexString(data);
        } catch (Exception ex) {
            throw new RuntimeException(ex);
        }
        return strDigest;
    }

    /**
     * MD5加密之方法三
     * 
     * @description java实现
     * @param str
     * @return
     */
    public static String encrypt3ToMD5(String str) {
        byte[] digest = null;
        try {
            // 得到一个md5的消息摘要
            MessageDigest md5 = MessageDigest.getInstance("MD5");
            // 添加要进行计算摘要的信息
            md5.update(str.getBytes());
            // 得到该摘要
            digest = md5.digest();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        // 将摘要转为字符串
        str = bytesToHexString(digest);
        return str;
    }

    /**
     * 将byte数组转换成16进制字符串
     * 
     * @param src
     * @return
     */
    private static String bytesToHexString(byte[] src) {
        StringBuilder sb = new StringBuilder();
        // 非空校验
        if (src == null || src.length <= 0) {
            return null;
        }
        for (int i = 0; i < src.length; i++) {
            int v = src[i] & 0xFF;
            String hv = Integer.toHexString(v);
            if (hv.length() < 2) {
                sb.append(0);
            }
            sb.append(hv);
        }
        return sb.toString();
    }
}

2.测试

public static void main(String[] args) {
    String str = "Marydon";
    System.out.println("MD5加密方法一:" + MD5Utils.encryptToMD5(str));
    System.out.println("MD5加密方法二:" + MD5Utils.encrypt2ToMD5(str));
    System.out.println("MD5加密方法三:" + MD5Utils.encrypt3ToMD5(str));
    // 结束都是:988218e7eefcd86d5d855a8947f37f43
}

3.说明

  方式一需要引jar包:commons-codec.jar

   

 相关推荐:

猜你喜欢

转载自www.cnblogs.com/Marydon20170307/p/9116924.html
今日推荐