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


    java 实现md5加密的三种方式

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

    Author:Marydon

    一、解密

      说明:截止文章发布,Java没有实现解密,但是已有网站可以免费破解了!(本质应该是将加密结果与加密前的数据对应存储起来了)

      见文末相关推荐

    二、加密的三种方式

      说明:都是返回长度为32位的16进制字符串(小写)。

      方法一:推荐使用

      所需jar包:commons-codec.jar

    import org.apache.commons.codec.digest.DigestUtils;
    /**
     * MD5加密之方法一
     * @explain 借助apache工具类DigestUtils实现
     * @param str
     *            待加密字符串
     * @return 16进制加密字符串
     */
    public static String encryptToMD5(String str) {
    	return DigestUtils.md5Hex(str);
    }  

      方法二

    /**
     * MD5加密之方法二
     * @explain java实现
     * @param str
     *            待加密字符串
     * @return 16进制加密字符串
     */
    public static String encrypt2ToMD5(String str) {
    	// 加密后的16进制字符串
    	String hexStr = "";
    	try {
    		// 此 MessageDigest 类为应用程序提供信息摘要算法的功能
    		MessageDigest md5 = MessageDigest.getInstance("MD5");
    		// 转换为MD5码
    		byte[] digest = md5.digest(str.getBytes("utf-8"));
    		hexStr = ByteUtils.toHexString(digest);
    	} catch (Exception e) {
    		e.printStackTrace();
    	}
    	return hexStr;
    }  

      方法三:SPRINGBOOT

    import org.springframework.util.DigestUtils;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import java.io.UnsupportedEncodingException;  
    /**
     * MD5加密
     * @explain springboot自带MD5加密
     * @param str 待加密字符串
     * @return 16进制加密字符串
     */
    public static String toMD5(String str) {
        log.debug("MD5待加密字符串:
    " + str);
        String md5 = "";
        try {
            md5 = DigestUtils.md5DigestAsHex(str.getBytes("utf-8"));
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        log.debug("MD5加密结果:
    " + md5);
        return md5;
    } 

    三、测试

    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
    }

       

  • 相关阅读:
    linux内核模块的程序结构
    Vmware中RedHat命令行和图形界面切换
    Linux2.6内核启动流程学习
    关于mini2440u_boot的制作及烧录
    linux指令
    Arm-linux-gcc-4.3.2安装步骤
    JNDI 与 LDAP
    apicloud 自定义模块引用aar
    CSS canvas 捕捉视频video元素截图
    本地服务器搭建服务:ftp
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/9116924.html
Copyright © 2020-2023  润新知