`
泪雨的终结
  • 浏览: 5195 次
文章分类
社区版块
存档分类
最新评论

JAVA生成MD5校验码

阅读更多
今天在工作中需要生成一个文件的MD5码用作文件上传的一个参数,MD5码是一个用来校验文件或者文本内容完整性一个常用的特征码。
MD5码详细介绍:http://baike.baidu.com/view/1493720.htm?fr=aladdin
下面用JAVA原生API简单实现,附带2种二进制转十六进制的方法

	private static void generateMD5(String content) {
		try {
			System.out.println("Content : " + content);
			MessageDigest md5 = MessageDigest.getInstance("MD5");
			byte[] digest = md5.digest(content.getBytes());
			System.out.println("MD5 : " + binaryTo16Radix1(digest));
			System.out.println("MD5 : " + binaryTo16Radix2(digest));
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		}
	}


private static void generateMD5(File file) {
		FileInputStream fis = null;
		try {
			System.out.println("File " + file.getPath());
			MessageDigest md5 = MessageDigest.getInstance("MD5");
			byte[] b = new byte[1024];
			for (fis = new FileInputStream(file);;) {
				int rl = fis.read(b);
				if (rl != -1) {
					md5.update(b, 0, rl);
				} else {
					break;
				}
			}

			byte[] digest = md5.digest();
			System.out.println("MD5 : " + binaryTo16Radix1(digest));
			System.out.println("MD5 : " + binaryTo16Radix2(digest));
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (fis != null) {
				try {
					fis.close();
				} catch (IOException ignored) {
				}
			}
		}
	}

	private static String binaryTo16Radix1(byte[] digest) {
		BigInteger bi = new BigInteger(1, digest);
		return bi.toString(16);
	}

	private static String binaryTo16Radix2(byte[] digest) {
		StringBuilder sb = new StringBuilder();
		for (byte b : digest) {
			sb.append(Integer.toString((b & 0xff) + 0x100, 16).substring(1));
		}
		return sb.toString();
	}



代码拙劣,如果写的不对,请大家指正!谢谢大家!
分享到:
评论

相关推荐

    Java实现MD5大文件校验码详解

    Java实现MD5大文件校验码详细解析: 包括具体方法解释、注释 通俗易懂、易于理解

    Java 生成校验码及校验码判断

    2. **MessageDigest**:对于更复杂的校验码,如MD5或SHA,可以使用`java.security.MessageDigest`类。首先需要实例化对应的算法,然后更新数据,最后获取校验码的字节数组。 ```java MessageDigest md = ...

    java生成md5密码加盐

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,可以将任意长度的输入转化为固定长度的输出,通常用于数据校验和密码存储。然而,由于MD5的碰撞攻击弱点,直接使用MD5来存储密码已经不够安全。为了...

    JS 生成MD5值和JAVA生成MD5值,自己测试过很好用

    标题提到的"JS生成MD5值和JAVA生成MD5值",实际上是指在JavaScript和Java这两种不同的编程语言中,如何对同一份数据计算MD5哈希值。由于MD5算法是公开的,理论上在任何支持该算法的编程环境下都应该得到相同的输出。...

    使用 Java 生成 MD5 编码

    本篇文章将详细探讨如何在 Java 中生成 MD5 编码,以及其相关知识点。 MD5 是一种广泛使用的哈希函数,它能够将任意长度的输入(也叫做预映射或消息)转化为固定长度的输出,通常是一个 128 位的二进制数,通常用 ...

    MD5校验工具源码

    MD5(Message-Digest Algorithm 5)是一种广泛用于数据完整性校验和安全散列的算法。它由美国麻省理工学院的Ronald Rivest在1991年设计,主要用于确保数据在传输、存储或处理过程中的完整性。MD5算法会将任意长度的...

    JAVA 生成文件的MD5码

    在Java编程语言中,生成文件的MD5码是常见的需求,例如用于文件校验、数据完整性的验证等。这篇博客“JAVA 生成文件的MD5码”可能讲述了如何在Java环境中实现这一功能。 首先,我们需要理解MD5的计算过程。MD5算法...

    解决java 与C# MD5 不一致问题 代码

    MD5(Message-Digest Algorithm 5)是RSA数据安全公司设计并发布的一种散列函数,它能够接收任意长度的消息作为输入,并生成一个固定长度(通常是128位或16字节)的十六进制字符串作为输出。由于其计算速度快且安全...

    基于Java开发的校验码工具.zip

    总结,这个基于Java的校验码工具结合了MD5、SHA1和CRC32三种校验算法,通过Swing构建的用户界面,提供了一个直观易用的平台来验证数据的完整性和一致性。无论是在个人工作还是企业环境中,这样的工具都能发挥重要的...

    MD5校验附源码

    5. **比对校验**:如果你有两个相同文件的MD5校验码应该完全一致,不同则说明文件内容存在差异。 在提供的压缩包文件“MD5”中,可能包含了MD5校验的源代码示例。通过查看和学习这段源代码,你可以了解MD5校验的...

    md5值校验工具

    1. **生成MD5值**:首先,你需要使用MD5校验工具对目标文件进行计算,工具会读取文件内容并应用MD5算法生成一个唯一的32位十六进制数字,这就是文件的MD5摘要。 2. **验证MD5值**:当获取到文件来源提供的正确MD5值...

    生成md5码的工具

    标题中的“生成md5码的工具”是指一种软件或应用程序,能够帮助用户快速计算出文件的MD5值。这种工具通常具有用户友好的界面,只需选择要检测的文件,它就能自动计算并显示该文件的MD5摘要。描述中的“超级好用”...

    MD5 校验 对比 加密

    然而,MD5的弱点在于其存在碰撞问题,即不同的输入可以生成相同的输出,这使得MD5不再适合用于安全敏感的应用。2004年,Mihir Bellare和王小云等人展示了如何构造MD5碰撞,进一步降低了其安全性。因此,现在MD5已经...

    md5码 java 程序

    在Java中生成MD5码: 在Java中,我们可以使用`java.security.MessageDigest`类来实现MD5码的生成。以下是一个简单的Java程序示例,用于计算字符串的MD5散列值: ```java import java.security.MessageDigest; ...

    MD5码生成工具

    在Java中,生成MD5码一般涉及`java.security.MessageDigest`类。首先,我们需要创建一个`MessageDigest`实例,指定为MD5算法。然后,使用`update`方法传递要进行哈希计算的数据,可以是一段字符串或者字节数组。最后...

    MD5码生成代码(Java)

    下面我们将详细介绍如何使用Java生成MD5码。 首先,你需要引入`java.security`包,这个包包含了处理加密和哈希算法的相关类。在Java代码中,你可以通过以下方式导入: ```java import java.security.MessageDigest...

    JAVA_对文件MD5加密

    3. **生成MD5摘要**: - 使用`MessageDigest.getInstance("MD5")`获取MD5算法实例。 - 通过`FileInputStream`读取文件内容,并使用`while`循环逐段更新MD5摘要。 - 最终调用`digest()`方法获取摘要并返回。 4. *...

    java完整性校验解决方案

    MD5 是一种广泛使用的哈希算法,它生成一个128位的哈希值,通常表示为32个十六进制字符的字符串,就像描述中提到的 "cbad484f0b02f0daf775137aeeOf4e2e"。这个字符串就是文件的数字指纹,发送方可以提供这个指纹供...

Global site tag (gtag.js) - Google Analytics