java apache md5加密_Java中MD5加密的几种方式

本文详细介绍了如何在Java中使用内置的MessageDigest、Spring的DigestUtils工具和Apache的DigestUtils工具进行MD5加密,包括示例代码,并强调了MD5在信息安全中的角色,尤其是在Linux/unix系统中的用户密码存储。
摘要由CSDN通过智能技术生成

一、MD5加密概述:

MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。

MD5为不可逆散列算法,可用于存储用户密码,存储后永远不需要知道明文。密码比较时只需将用户输入的密码再次转成MD5码与存储的相比较即可得知用户输入密码是否正确。linux/unix操作系统一般采用MD5进行用户密码加密。

二、Java实现MD5加密的几种方式:

1、Java自带的MessageDigest实现

import java.security.MessageDigest;

/**

* MD5加密

*/

public class MD5Util {

//盐,用于混交md5

private static final String slat = "&%5123***&&%%$$#@";

public static String encrypt(String dataStr) {

try {

dataStr = dataStr + slat;

MessageDigest m = MessageDigest.getInstance("MD5");

m.update(dataStr.getBytes("UTF-8"));

byte s[] = m.digest();

String result = "";

for (int i = 0; i < s.length; i++) {

result += Integer.toHexString((0x000000FF & s[i]) | 0xFFFFFF00).substring(6);

}

return result;

} catch (Exception e) {

e.printStackTrace();

}

return "";

}

}

2、Spring中的DigestUtils工具类

import org.springframework.util.DigestUtils;

/**

* MD5加密

*/

public class MD5Util {

//盐,用于混交md5

private static final String slat = "&%5123***&&%%$$#@";

public static String encrypt(String dataStr) throws UnsupportedEncodingException {

String base = dataStr + slat;

String md5 = DigestUtils.md5DigestAsHex(base.getBytes("UTF-8"));

return md5;

}

}

3、Apache中的DigestUtils工具类

pom.xml中引入:

commons-codec

commons-codec

1.10

代码实现:

import org.apache.commons.codec.digest.DigestUtils;

/**

* MD5加密

*/

public class MD5Util {

//盐,用于混交md5

private static final String slat = "&%5123***&&%%$$#@";

public static String encrypt(String dataStr) throws UnsupportedEncodingException {

String base = dataStr + slat;

String md5 = DigestUtils.md5Hex(base.getBytes("UTF-8"));

return md5;

}

}

标签:加密,String,static,Java,dataStr,MD5,public,md5

来源: https://www.cnblogs.com/ahhhhh/p/14041783.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值