java计算MD5值

package com.linusiyu.common;

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

public class MD5Util {

    public static String MD5(String content){
        byte[] result = new byte[]{};
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(content.getBytes("UTF-8"));
            result = md.digest();
        } catch (Exception e) {
            e.printStackTrace();
        }

        // 使用StringBuilder或者BigInteger都行.
        StringBuilder sb = new StringBuilder(32);
        for (int i = 0; i < result.length; i++) {
            int val = result[i] & 0xff;
            if (val <= 0xf) {
                sb.append("0");
            }
            sb.append(Integer.toHexString(val));
        }
        return sb.toString().toLowerCase();
    }

    public static String MD5(final File file) throws Exception {
        FileInputStream fis = new FileInputStream(file);
        MessageDigest md = MessageDigest.getInstance("MD5");
        byte[] buf = new byte[1024];
        int len = -1;
        while((len = fis.read(buf, 0, 1024)) != -1){
            md.update(buf, 0, len);
        }
        fis.close();
        byte[] result = md.digest();
        return new BigInteger(1, result).toString(16).toLowerCase();
    }
}
时间: 2024-08-07 17:10:03

java计算MD5值的相关文章

计算 MD5值

// // MD5Value.h // iOSEdu // // Created by littest on 16/2/26. // Copyright © 2016年 littest. All rights reserved. // #import <Foundation/Foundation.h> #import <CommonCrypto/CommonDigest.h> #define FileHashDefaultChunkSizeForReadingData 1024*8

Python两种方法计算MD5值

1.Python内置md5模块 1 #-*- coding:utf-8 -*- 2 3 import md5 4 5 def Str2Md5(s): 6 m=md5.new() 7 m.update(s) 8 return m.hexdigest() 9 10 if __name__=="__main__": 11 s="www.baidu.com" 12 print Str2Md5(s) 2.Python的hashlib模块 1 #-*- coding:utf-8

python计算文件的md5值

前言 最近要开发一个基于python的合并文件夹/目录的程序,本来的想法是基于修改时间的比较,即判断文件有没有改变,比较两个文件的修改时间即可.这个想法在windows的pc端下测试没有问题. 但是当把一个文件从pc端复制到优盘时出现了一个问题,复制到优盘的文件比pc端的文件慢了两秒钟! 这里我用的复制函数是 shutil.copy2(),理论上它会把修改时间和最后访问时间也复制过来1,但是实际情况并不是完全相同. 详细情况我在segmentfault里提出了问题:为什么将一个文件从pc中复制到

H5计算图片视频资源md5值(使用fileapi)

2017/10/28 发布 md5概念及作用: MD5是message-digest algorithm 5(信息-摘要算法)的缩写,被广泛用于加密和解密技术上,它可以说是文件的"数字指纹".任何一个文件,无论是可执行程序.图像文件.临时文件或者其他任何类型的文件,也不管它体积多大,都有且只有一个独一无二的MD5信息值,并且如果这个文件被修改过,它的MD5值也将随之改变.因此,我们可以通过对比同一文件的MD5值,来校验这个文件是否被"篡改"过. 实际应用: 近期在开

【Unity3D】使用MD5值,确保本地Sqlite数据库内容没有被篡改

Sqlite的应用场景 在判断是否使用存储格式为Sqlite模式的标准,我们的标准是内容只读.也就是说,除非发布者修改Sqlite内容,玩家只有读取的权限. 换个角度说,Sqlite里面的数据都是游戏基础配置数据,比如游戏的关卡(不包括玩家取得的成就).怪物的血量.装备的模板数据 对于如何使用Sqlite,请参考我的另外一篇文章<Unity本地数据存储---Sqlite和JSON> 问题重现 OK,既然我们选择了Sqlite作为存储手段之一,那么我们也嘚重视起安全性. 以android而言,我

C#对文件进行MD5值检测

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.ComponentModel; 7 using System.Data; 8 using System.Drawing; 9 using System.IO; 10 using System.Security.Cryp

node快速计算md5

最近在做一个文件上传的项目,当上传文件达到几十GB,几百GB后在文件上传99%后,需要等待非常长的时间文件才能完成上传.通过埋点打印时间,发现md5计算时间非常长. 为了校验文件传输的完整性需要在文件上传结束后校验文件的完整性,md5值就用来校验完整性,所以这一步不能少. 解决方案 通过网上查找资料,MD5计算工具在计算大文件md5值时也不是一次性计算出来的,也是通过分片的方式累加计算出来的. 所以我们在上传大文件时,本来上传的思路就是分片上传,我们只需要对每块分片进行md5计算,最后累加计算m

计算文件的MD5值(Java &amp; Rust)

Java public class TestFileMD5 { public final static String[] hexDigits = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b",

【转】Java计算文件的hash值

原文地址:http://blog.csdn.net/qq_25646191/article/details/78863110 如何知道一个文件是否改变了呢?当然是用比较文件hash值的方法,文件hash又叫文件签名,文件中哪怕一个bit位被改变了,文件hash就会不同. 比较常用的文件hash算法有MD5和SHA-1.我用的是MD5算法,java中,计算MD5可以用MessageDigest这个类. 下面是代码: [java] view plain copy package com.test;