java实现MD5加密的三种方式「建议收藏」

java实现MD5加密的三种方式「建议收藏」方法一:推荐使用所需jar包:commons-codec.jarimportorg.apache.commons.codec.digest.DigestUtils;/***MD5加密之方法一*@explain借助apache工具类DigestUtils实现*@paramstr*待加密字符串*@return16进制加密字符串*/publicstaticStringencryptToMD5(Stringstr){ return

大家好,又见面了,我是你们的朋友全栈君。

方法一:推荐使用

所需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;
}  

方法三:SPRING核心包

import org.springframework.util.DigestUtils
import org.slf4j.logger
import org.slf4j.loggerFactory
/** * MD5加密之方法三 * @explain springboot自带MD5加密 * @param str * 待加密字符串 * @return 16进制加密字符串 */
 public static String encrypt3ToMD5(String str) { 
   
 	log.debug("MD5待加密字符串:\n"+str);
 	String md5 = " ";
 	try { 
   
 	md5 = DigestUtils.md5DigestAsHex(text.getBytes("utf-8"))
    } catch (UnsupportedEncodingException e) { 
   
    e.printStackTrace();
    }
    log.degbug("MD5加密结果:\n"+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
}

关于MD5自动补零

https://www.cnblogs.com/Marydon20170307/p/9116924.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157013.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java递归详解_java难不难学

    Java递归详解_java难不难学学习目标:提示:这里可以添加学习目标例如:一周掌握Java入门知识学习内容:提示:这里可以添加要学的内容例如:1、搭建Java开发环境2、掌握Java基本语法3、掌握条件语句4、掌握循环语句学习时间:提示:这里可以添加计划学习的时间例如:1、周一至周五晚上7点—晚上9点2、周六上午9点-上午11点3、周日下午3点-下午6点学习产出:提示:这里统计学习计划的总量例如:1、技术笔记2遍2、CSDN技术博客3篇

    2022年9月18日
    4
  • 什么是5g微基站(三大运营商基站数量)

    大家都知道,要想使用5G网络,必须要有5G基站做支撑,那么5G基站长啥样,又是如何建成的呢?▲中国移动的5G天线设备▲北斗+GPS的双星授时设备5G天线设备、北斗+GPS的双星授时设备两…

    2022年4月11日
    111
  • lsd 特征点匹配代码_2018-09-24 多关键字排序(基数排序LSD + MSD)「建议收藏」

    lsd 特征点匹配代码_2018-09-24 多关键字排序(基数排序LSD + MSD)「建议收藏」多关键字排序很多时候,一个对象可以用多个特征值来刻画它,可以把每个特征值看做一个关键字,比如扑克牌有花色和点数这两个特征,如果所要求的顺序由多个关键字联合决定,我们就可以利用这种特征来使用多关键字排序方法,多关键字地位不是平等的,有优先级大小。如扑克牌排序,我们就可以规定花色比点数优先,也就是说无论点数多少,只要花色大的就认为它是大牌,比如规定黑桃大于红心,红心大于梅花,梅花大于方块。多关键字排序…

    2022年5月28日
    30
  • deviceiocontrol true怎么解决_分段函数

    deviceiocontrol true怎么解决_分段函数前言:最近需要对Windows中的设备进行编程操作,其中涉及到非常重要的函数DeviceIoControl,在使用的时候也比较的复杂,国内这一块中文资料比较少,在学习之余顺便将其翻译出来,以供参考,如有错误,欢迎指正。lcb0281@163点comMSDN原文地址:DeviceIoControlfunctionDeviceIoControl将控制代码直接发送到指定的设备驱动…

    2025年8月20日
    3
  • js的timeout_定时器有哪三种类型

    js的timeout_定时器有哪三种类型js中两种定时器setTimeout和setInterval开发工具与关键技术:DW、Js作者:李宥良撰写时间:2019年1月17日定时器的用法非常之普遍,一般动态变化的效果都会用到定时器;定时器分为setTimeout和setInterval下面是方法和描述计时器类型:一、setTimeout(对象)setTimeout()计时器:在载入后延迟指定时间后,去执行一次表达式,仅执…

    2022年10月4日
    3
  • STM32F103ZET–RFID-RC522使用例程(战舰版)

    RC522.c#include"sys.h"#include"rc522.h"#include"delay.h"#include

    2022年4月6日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号