当需要对一个大文件计算MD5校验和时,JDK提供的方法速度是非常快的,甚至比操作系统提供的本地工具还要快。详情可以查看这个链接 http://www.twmacinta.com/myjava/fast_md5.php
这里有一个简单的示例,来自 http://www.javalobby.org/java/forums/t84420.html:
public static void main(String[] args) throws NoSuchAlgorithmException, FileNotFoundException {
MessageDigest digest = MessageDigest.getInstance("MD5");
File f = new File("c:\\myfile.txt");
InputStream is = new FileInputStream(f);
byte[] buffer = new byte[8192];
int read = 0;
try {
while( (read = is.read(buffer)) > 0) {
digest.update(buffer, 0, read);
}
byte[] md5sum = digest.digest();
BigInteger bigInt = new BigInteger(1, md5sum);
String output = bigInt.toString(16);
System.out.println("MD5: " + output);
}
catch(IOException e) {
throw new RuntimeException("Unable to process file for MD5", e);
}
finally {
try {
is.close();
}
catch(IOException e) {
throw new RuntimeException("Unable to close input stream for MD5 calculation", e);
}
}
}
如果需要对一个较短字符串进行处理,只要使用String的getBytes方法即可
分享到:
相关推荐
在JAVA中实现MD5编码通常是为了数据校验、密码存储等目的,因为MD5能将数据转化为不可逆的128位(16字节)散列值,通常以32位的十六进制字符串表示。在此,我们将深入探讨如何在Java中不依赖任何第三方API来实现MD5...
本篇文章将详细探讨如何在 Java 中生成 MD5 编码,以及其相关知识点。 MD5 是一种广泛使用的哈希函数,它能够将任意长度的输入(也叫做预映射或消息)转化为固定长度的输出,通常是一个 128 位的二进制数,通常用 ...
- `md5(请删除括号内容-可设置编码).java`:这个文件可能提供了一个MD5工具类,允许用户自定义编码方式,比如可以选择UTF-8、GBK等,以便正确处理包含非ASCII字符的字符串。 - `MD5(请删除括号内容-可生成指定...
java md5编码,主要用于对密码进行加密等工作。
### 解决Java与C# MD5不一致问题 在软件开发过程中,经常需要对数据进行加密处理以确保数据的安全性和一致性。MD5是一种常用的哈希算法,被广泛应用于各种场景中,如密码加密、文件校验等。但在跨平台或多语言环境...
Java工具类,它不仅实现了MD5加密,更创新性地接纳String... inputStrs,让你能一次性加密多个字符串。 1. 一键加密,多值无忧 告别繁杂,拥抱简洁。我们的Java MD5加密工具类以String... inputStrs为武器,打破了...
在编程实践中,MD5的实现通常涉及特定的库函数,例如在Python中可以使用`hashlib`库,Java中可以使用`java.security.MessageDigest`类,JavaScript中则有`crypto`模块。这些库提供了简单的API,让开发者能够方便地...
这个MD5实现虽然没有使用Java的`MessageDigest`类,但仍然遵循了MD5算法的基本步骤,包括初始化、分块处理、循环计算和最终摘要的生成。由于没有使用可视化控件,它是一个命令行程序,适合学习和理解MD5算法的内部...
标题中的“JAVA与C#一致的32位MD5加密方法”指的是在Java和C#这两种编程语言中实现相同32位MD5哈希的过程。由于MD5算法本身是标准的,理论上在任何支持MD5的编程语言中都应该得到相同的输出,不论是在Java还是C#中。...
### Java中的MD5算法 #### 一、简介 在计算机科学领域中,MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,能够将任意长度的数据转换为固定长度的128位(16字节)哈希值。由于其独特的特性,MD5被...
首先,让我们来看看`GetMD5.java`文件可能涉及的Java MD5编码实现。在Java中,我们通常使用`java.security.MessageDigest`类来计算MD5哈希值。以下是一个简单的MD5编码示例: ```java import java.security....
这段代码首先获取MD5算法的`MessageDigest`实例,然后对输入字符串进行字节编码,接着调用`digest()`方法计算哈希值。计算得到的字节数组转换为16进制字符串,便于人类阅读和比较。 在网页传输中,服务器在发送数据...
无论是JavaScript还是Java,只要遵循正确的编码和处理规则,两者都能生成一致的MD5摘要,从而确保数据的一致性。在实际应用中,我们应确保所有涉及MD5计算的部分都进行充分的测试,确保在不同环境下的一致性。
它不仅展示了如何利用Java标准库中的`MessageDigest`类来计算MD5值,还展示了如何处理字节和十六进制之间的转换,以及如何处理潜在的异常情况。这种MD5加密方法在实际开发中非常实用,可以应用于用户密码存储、数据...
在这个例子中,我们首先获取`MessageDigest`实例,然后对输入字符串进行UTF-8编码并计算MD5摘要。最后,我们将得到的字节数组转换为16进制字符串进行打印。 在实际应用中,MD5通常用于校验文件的完整性。例如,当你...
然后,我们对输入字符串进行字节编码,并传递给`digest()`方法进行MD5计算。计算结果是字节数组,我们将其转换为16进制字符串以便于查看和比较。 在实际应用中,MD5常用于密码存储,但需要注意的是,由于MD5的安全...
4. 使用`update()`方法将数据分块加入到MD5处理中,最后调用`digest()`获取结果: ```java md.update(bytes); byte[] digestBytes = md.digest(); ``` 5. 将得到的字节数组转换为16进制字符串。因为每个字节是8...
3. **MD5编码**:对输入的原始字符串进行MD5加密处理,并返回加密后的结果。 #### 三、代码解析 ##### 1. 转换字节数组为16进制字符串 ```java public static String byteArrayToHexString(byte[] b) { ...
4. **异常处理**:在Java中,`MessageDigest.getInstance("MD5")`可能会抛出`NoSuchAlgorithmException`,需要妥善处理。 5. **库的版本**:虽然不同版本的库可能会影响哈希结果,但MD5作为标准算法,其结果应该是...