导航:首页 > 编程语言 > java文件的md5值

java文件的md5值

发布时间:2024-12-20 04:58:01

java 获取1G文件md5 要多久

我使用了部分取值的方式来提高MD5的计算速度,这样的时候,时间主要耗费在了IO中。如果是100K(换成500K也并没有提高执行的速度)取一个字符计算大约10秒以内。但是如果全部读取可能要60秒或者更多。对于大文件建议使用一些文件相关信息和部分文件内容做MD5.比如用文件长度和一定间隔取一些字节。

❷ java文件md5值 什么意思

MD5是常用的一种加密方式,原数据加过加密算法后的得到的数据就是MD5值

用户的密码很多是以MD5值(或类似的其它算法)的方式保存的,这样即使数据库被侵入,也不能直接得到用户的原始密码

❸ java多个文件怎么生成一个md5

这里定义了一些基本的变量与静态对象,并指定采用的方式是“md5“,下张图为定义了一个方法,方法的参数是接收一个文件File对象,并且返回该文件生成的”md5“值。

这里定义了一个转化方法,把文件或文件流以字节的方式进行转换,使之生成唯一的md5,此方法间接的应用到了md5的生成中。

这里主要定义了一个根据提供的文件流输入流InputStream进行生成md5的值,如上几幅图中的代码加在一起就是完整的文件或文件流的md5值生成方法。

4
最后一张图片为最终生成后的效果,文件上传的时候可以先生成md5的值后到数据库中进行查找,如果找到了就说明相同的文件已经存在,那么就不应该再保存了,否则会出现相同的冗余文件。

❹ Java,如何获取文件的MD5值

package cdm;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.math.BigInteger;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.security.MessageDigest;
import org.apache.commons.codec.digest.*;
import org.apache.commons.io.IOUtils;
public class testMD5 {

public static String getMd5ByFile(File file) throws FileNotFoundException {
String value = null;
FileInputStream in = new FileInputStream(file);
try {
MappedByteBuffer byteBuffer = in.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, file.length());
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(byteBuffer);
BigInteger bi = new BigInteger(1, md5.digest());
value = bi.toString(16);
} catch (Exception e) {
e.printStackTrace();
} finally {
if(null != in) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return value;
}

public static void main(String[] args) throws IOException {

String path="E:\文件.zip";

String v = getMd5ByFile(new File(path));
System.out.println("MD5:"+v.toUpperCase());

FileInputStream fis= new FileInputStream(path);
String md5 = DigestUtils.md5Hex(IOUtils.toByteArray(fis));
IOUtils.closeQuietly(fis);
System.out.println("MD5:"+md5);

//System.out.println("MD5:"+DigestUtils.md5Hex("WANGQIUYUN"));
}
}

❺ java 算文件的MD5值是怎么用十六进制表示的

&这个是位运算“且”

sb.append(hexChar[(b[i] & 0xf0) >>> 4]);
//(b[i] & 0xf0)这个意思就是取b[i]的后4位
“>>> 无符号右移”

sb.append(hexChar[b[i] & 0x0f]);
//这个意思就是取b[i]的前4位

阅读全文

与java文件的md5值相关的资料

热点内容
循环泵压缩机不启动 浏览:987
eclipseandroid卡死 浏览:219
钉钉里有个人文件夹吗 浏览:928
编程导入excel 浏览:954
河源码垛上料托盘清洗机 浏览:715
福昕pdf背景 浏览:550
抖音为什么安卓系统下载不了 浏览:382
ps图片解压密码 浏览:880
jsp在线选课系统源码 浏览:756
手机信息加密软件app 浏览:575
tomcat源码教学 浏览:624
安卓相机怎么镜像 浏览:188
cad边界创建命令啥意思 浏览:871
和平精英安卓手机为什么会掉帧 浏览:937
生男生女几种算法 浏览:950
安卓如何弄出ios卡后台的效果 浏览:635
都匀dns服务器地址 浏览:68
net和java区别 浏览:174
咪咕影院app没了我的钱怎么办 浏览:747
什么是反向代理服务器 浏览:267