`
laozhou
  • 浏览: 37814 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

MD5加密文件

阅读更多
package com;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Util {
/**
* 默认的密码字符串组合,apache校验下载的文件的正确性用的就是默认的这个组合
*/
protected static char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6',
'7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
protected static MessageDigest messagedigest = null;
static {
try {
messagedigest = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException nsaex) {
System.err.println(MD5Util.class.getName()
+ "初始化失败,MessageDigest不支持MD5Util。");
nsaex.printStackTrace();
}
}

/**
* 适用于上G大的文件
*
* @param file
* @return
* @throws IOException
*/
public static String getFileMD5String(File file) throws IOException {
FileInputStream in = new FileInputStream(file);
FileChannel ch = in.getChannel();
MappedByteBuffer byteBuffer = ch.map(FileChannel.MapMode.READ_ONLY, 0,
file.length());
messagedigest.update(byteBuffer);
return bufferToHex(messagedigest.digest());
}

public static String getMD5String(String s) {
return getMD5String(s.getBytes());
}

public static String getMD5String(byte[] bytes) {
messagedigest.update(bytes);
return bufferToHex(messagedigest.digest());
}

private static String bufferToHex(byte bytes[]) {
return bufferToHex(bytes, 0, bytes.length);
}

private static String bufferToHex(byte bytes[], int m, int n) {
StringBuffer stringbuffer = new StringBuffer(2 * n);
int k = m + n;
for (int l = m; l < k; l++) {
appendHexPair(bytes[l], stringbuffer);
}
return stringbuffer.toString();
}

private static void appendHexPair(byte bt, StringBuffer stringbuffer) {
char c0 = hexDigits[(bt & 0xf0) >> 4];
char c1 = hexDigits[bt & 0xf];
stringbuffer.append(c0);
stringbuffer.append(c1);
}

public static boolean checkPassword(String password, String md5PwdStr) {
String s = getMD5String(password);
return s.equals(md5PwdStr);
}

public static void main(String[] args) throws IOException {
long begin = System.currentTimeMillis();

// 2EA3E66AC37DF7610F5BD322EC4FFE48 670M 11s kuri双核1.66G 2G内存
File big = new File("D:\\imnew.zip");

String md5 = getFileMD5String(big);

long end = System.currentTimeMillis();
System.out.println("md5:" + md5 + " time:" + ((end - begin) / 1000)
+ "s");
}
}
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    MD5加密文档

    MD5加密文档.处理登录,注册的密码一些相关的操作

    md5加密文件代码

    在描述中提到的“MD5加密文件代码”是指使用MD5算法对文件内容进行哈希处理的程序。这种代码通常包括读取文件内容,计算其MD5摘要,并将结果以字符串形式返回。通过对比两个文件的MD5摘要,可以快速判断它们是否内容...

    md5加密文件

    md5文件加密

    VB6中的MD5加密文件

    根据提供的文件信息,本文将详细解析“VB6中的MD5加密文件”的实现原理与关键步骤。MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,它可以将任意长度的消息转换为一个固定长度(通常为128位)的...

    MD5加密文件【MD5.js】

    常用的md5加密文件,上传上来当做备份了,有需要的同学也可下载。 常用的md5加密文件,上传上来当做备份了,有需要的同学也可下载。

    MD5加密就JS文件

    在这个场景中,"MD5加密就JS文件"可能是指一个JavaScript文件,它提供了MD5加密的功能,使得前端开发者可以在进行Ajax请求时对发送的数据进行加密。 在Web开发中,Ajax(Asynchronous JavaScript and XML)请求是不...

    MD5加密文件和字符串

    以上就是关于“MD5加密文件和字符串”的详细解释,涵盖了MD5的基本概念、C++实现方法以及可能涉及的安全性问题。通过理解这些知识点,开发者可以在实际项目中有效地使用MD5进行数据的校验和加密。

    遇到MD5加密文件,而又不知道的密码的

    遇到MD5加密文件,而又不知道的密码的,从事java方面遇到的问题

    md5加密文档

    根据提供的文件信息,本文将详细解释MD5加密技术在Java中的实现原理以及如何在Web项目中使用该技术来加密和验证用户密码。 ### MD5加密技术简介 MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希算法,用于...

    如果遇到MD5加密文件,而又不知道的密码的,

    总结起来,遇到MD5加密文件的问题,首先要明确MD5通常用于验证而非加密,并尝试理解MD5值在系统中的角色。对于给定的ASP文件列表,可能需要通过源代码分析或数据库查询来找出如何利用MD5值来解密或访问文件。然而,...

    DELPHI7可直接使用的MD5加密文件算法源代码

    DELPHI7可直接使用的MD5加密文件算法源代码,输入和输出均为byte格式

    javascript md5加密 js文件

    在给定的“javascript md5加密 js文件”中,主要涉及的核心是`md5.js`这个JavaScript库,它提供了一个方便的方法来实现MD5哈希加密。以下是对这个库的一些详细解释: 1. **MD5.js库的引入**: 在HTML文件中,可以...

    windows下MD5加密工具bat文件

    本主题提供的“windows下MD5加密工具bat文件”是一个基于批处理脚本(.bat)的解决方案,允许用户在没有额外安装软件的情况下进行MD5加密操作。 批处理文件(.bat)是Windows操作系统中的一个特殊文本文件,它可以...

    C# MD5加密 实例源码(加密解密)

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的数据转化为固定长度的摘要,通常用于数据完整性校验和密码加密。在C#编程语言中,MD5加密也是一项常用的技术。下面我们将深入探讨C#...

    PB9.0调用MD5加密示例,md5加密方法过程,PowerBuilder

    MD5算法由Ronald Rivest在1991年设计,它的目的是提供一种快速、简单的方法来验证文件或数据的完整性。MD5的过程是不可逆的,即不能通过散列值还原原始数据,因此适用于密码存储,但因存在碰撞问题,不适用于安全性...

Global site tag (gtag.js) - Google Analytics