java语言MD5加密字符串,计算文件的MD5值

编程教程 > Java (2082) 2025-01-27 08:09:35

java语言MD5加密字符串,计算文件的MD5值

package org.xqlee.utils.security;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;


public class MD5Util {

	/**
	 * 加密一个输入字符串
	 * 
	 * @param visibleString
	 *            输入一个可见的明码<br>
	 *            类型:java.lang.String
	 * @return 一个加密后的MD5值<br>
	 *         通常用于密码加密
	 * @throws NoSuchAlgorithmException
	 */
	public static String getEnMD5String(String visibleString) throws NoSuchAlgorithmException {
		MessageDigest md5;
		// 生成一个MD5加密计算摘要
		md5 = MessageDigest.getInstance("MD5");
		// 计算md5函数
		md5.update(visibleString.getBytes());
		// digest()最后确定返回md5 hash值,返回值为8为字符串。因为md5 hash值是16位的hex值,实际上就是8位的字符
		// BigInteger函数则将8位的字符串转换成16位hex值,用字符串来表示;得到字符串形式的 值
		String pwdStr = new BigInteger(1, md5.digest()).toString(16);
		return pwdStr;
	}

	/**
	 * 计算文件MD5值
	 * 
	 * @param file
	 *            输入一个文件参数<br>
	 *            类型:java.io.File
	 * @return 该文件的MD5值<br>
	 *         类型:java.lang.String
	 * @throws IOException
	 *             IO异常
	 * @throws NoSuchAlgorithmException
	 *             MD5获取实例异常
	 */
	public static String getMd5ForFile(File file) throws IOException, NoSuchAlgorithmException {
		FileInputStream in = null;
		in = new FileInputStream(file);
		MessageDigest md5 = MessageDigest.getInstance("MD5");
		byte[] cache = new byte[2048];
		int len;
		while ((len = in.read(cache)) != -1) {
			md5.update(cache, 0, len);
		}
		in.close();
		BigInteger bigInt = new BigInteger(1, md5.digest());
		return bigInt.toString(16);
	}

}

 

 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
java语言MD5加密字符串,计算文件的MD5值package org.xqlee.utils.security;import java.io.File;imp
jQuery之MD5加密插件使用及下载,网络中md5进行简单加密的地方越来越多。这里讲解一个jQuery的md5插件
Java编程之spring boot FastDFS Java client使用,Java编程,FastDFS Java客户端
在Java编程测试中junit5 新特性与使用,Java编程,junit5
Java编程软件有哪些?常用Java编程软件下载、安装和使用说明
Postman 请求前修改密码为MD5值Postman请求参数设置 选择Pre-request Script栏目 获取明文密码并md5加密后设置到变量中 脚本://获取明文密码 let pwd...
Java编程中Spring Boot整合RabbitMQ实现消息中间件RabbitMQ的使用 1 主要用spring-boot-starter-amqp来整合R
本文讲解什么是JWT,JWT的构成和JWT算法?,Java编程,JWT
Java编程之Spring Cloud Hystrix Circuit熔断/断路
java编程中spring框架5.0介绍说明/概述,spring5,spring框架,java编程
java编程之java jwt token使用,autho0的Java-jwt框架使用,java编程,java-jwt
Java编程之java static关键字,Java编程,static关键字
Java编程中纯jdk java方式编写webservice服务(server)和客服端(client)
Map与Java bean之间的转换工具类,用于java.util.Map与普通javabean直接的相互转换,Java编程