MD5工具类

package com.huowolf.Util;

import java.security.MessageDigest;

import sun.misc.BASE64Encoder;

public class MD5Util {
	public static String encode(String message) {
		try {
			MessageDigest md = MessageDigest.getInstance("md5");
			byte[] b = md.digest(message.getBytes());
			return new BASE64Encoder().encode(b);
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
		
	}
}

### Java MD5 工具类实现 为了方便地生成或验证MD5哈希值,在Java中可以通过编写一个工具类来简化这一过程。下面展示了一个基于`MessageDigest`的简单实用的MD5工具类。 #### 使用原生库创建MD5工具类 ```java import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class Md5Util { private static final String ALGORITHM = "MD5"; /** * 对字符串进行MD5加密. * * @param str 待加密的内容 * @return 加密后的16进制表示形式的结果 */ public static String encode(String str) { try { MessageDigest digest = MessageDigest.getInstance(ALGORITHM); byte[] hash = digest.digest(str.getBytes()); StringBuilder hexString = new StringBuilder(); for (byte b : hash) { String hex = Integer.toHexString(0xff & b); if (hex.length() == 1) hexString.append('0'); hexString.append(hex); } return hexString.toString(); } catch (NoSuchAlgorithmException e) { throw new RuntimeException(e.getMessage(), e); } } } ``` 此段代码定义了一个名为`Md5Util`的静态辅助函数,它接收一个待处理的字符串参数并返回其对应的MD5散列值[^3]。 #### 利用Apache Commons Codec库优化编码方式 除了上述方法外,还可以借助于成熟的开源框架如Apache Commons Codec中的`DigestUtils`来进行更简洁的操作: 首先需添加Maven依赖项到项目的pom.xml文件内: ```xml <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.15</version> </dependency> ``` 接着就可以直接调用`DigestUtils.md5Hex()`完成相同的功能而无需手动构建逻辑了[^4]: ```java import org.apache.commons.codec.digest.DigestUtils; public class SimpleMd5Example { public static void main(String[] args){ System.out.println(DigestUtils.md5Hex("test")); // 输出测试字符串"test"经过MD5运算之后得到的十六进制字符串 } } ``` 通过这种方式不仅减少了自定义实现可能带来的错误风险,同时也提高了开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值