精华内容
下载资源
问答
  • JAVA 生成文件的MD5

    2019-08-03 01:17:22
    NULL 博文链接:https://kanpiaoxue.iteye.com/blog/1669100
  • Java生成文件的md5文件方法的代码

    千次阅读 2019-09-06 11:23:02
    package pri.liyang.util; import java.io.*; import java.security.MessageDigest; import java.security....* 根据文件生成MD5工具类 * Author:李小白 */ public class MD5Util { /** ...

    package pri.liyang.util;

    import java.io.*;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;

    /**
     * 根据文件生成MD5码的工具类
     * Author:李小白
     */
    public class MD5Util {

        /**
         * 辅助方法
         * @param filename
         * @return
         */
        private static byte[] createChecksum(String filename) {
            InputStream fis = null;
            try {
                fis = new FileInputStream(filename);
                byte[] buffer = new byte[1024];
                MessageDigest complete = MessageDigest.getInstance("MD5");
                int numRead = -1;

                while ((numRead = fis.read(buffer)) != -1) {
                    complete.update(buffer, 0, numRead);
                }
                return complete.digest();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (NoSuchAlgorithmException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (null != fis) {
                        fis.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return null;

        }

        /**
         * 生成文件的MD5码
         * @param filePath 文件路径
         * @return 该文件的MD5码
         */
        private static String generateMD5(String filePath){
            if (!new File(filePath).isFile()) {
                System.err.println("Error: " + filePath
                        + " is not a valid file.");
                return null;
            }
            byte[] b = createChecksum(filePath);
            if(null == b){
                System.err.println(("Error:create md5 string failure!"));
                return null;
            }
            StringBuilder result = new StringBuilder();

            for (int i = 0; i < b.length; i++) {
                result.append(Integer.toString((b[i] & 0xff) + 0x100, 16)
                        .substring(1));
            }
            return result.toString();
        }

        /**
         * 根据文件,在同一文件夹下生成相应的MD5文件,文件名相同,仅后缀名不同
         * 比如文件为helloworld.txt,生成MD5文件:helloworld.md5
         * @param filePath 文件绝对路径
         */
        public static void generateMD5File(String filePath) throws IOException {
            //获得该文件实例
            File file = new File(filePath);

            //获得该文件的MD5码
            String md5code = generateMD5(filePath);

            //获得该文件的文件夹路径
            String directoryPath = file.getParentFile().getAbsolutePath();

            //生成该文件对应的MD5文件的文件名
            String md5FileName = file.getName().substring(0, file.getName().lastIndexOf(".")) + ".md5";

            //获得该文件对应的MD5文件的绝对路径
            String md5FilePath = directoryPath + File.separator + md5FileName;

            //生成MD5文件
            File md5File = new File(md5FilePath);
            if(!md5File.exists()){
                md5File.createNewFile();
            }

            //文件写入MD5码的FileWriter类
            FileWriter fileWriter = new FileWriter(md5File);
            //将MD5码写入到MD5文件中
            fileWriter.write(md5code);
            //刷新流
            fileWriter.flush();
            //关流
            fileWriter.close();

            //打印提示信息
            System.out.println("创建MD5文件成功:" + md5FilePath);
        }


        /**
         * 输入文件夹名称,将该文件夹下所有的文件都生成同名的MD5文件
         * @param directoryPath
         */
        public static void generateMD5Files(String directoryPath) throws IOException {
            //创建文件夹实例
            File directory = new File(directoryPath);
            //文件数组
            File[] files = null;

            if(directory.isDirectory()){
                //获得所有文件
                files = directory.listFiles();
                //分别为每一个文件创建MD5文件
                for(int i=0; i<files.length; i++){
                    generateMD5File(files[i].getAbsolutePath());
                }
            }else{
                System.err.println("不是文件夹,请检查路径!");
                return;
            }

        }


        /**
         * 测试类
         * @param args
         * @throws IOException
         */
        public static void main(String[] args) throws IOException {
            //输入文件的绝对路径,生成该文件同一文件夹下的相同文件名,后缀名为.md5的文件
            generateMD5File("C:\\Users\\李小白\\Desktop\\MD5\\helloworld.txt");

            //输入文件夹的绝对路径,生成该文件夹下所有文件的MD5文件,该文件夹的文件数多一倍
            generateMD5Files("C:\\Users\\李小白\\Desktop\\MD5");
        }

    }
    本文链接:https://blog.csdn.net/weixin_39448458/article/details/81485522

    展开全文
  • package pri.liyang.util; import java.io.*; import java.security.MessageDigest; import java.security.... * 根据文件生成MD5工具类 * Author:李小白 */ public class MD5Util { /*...
    package pri.liyang.util;
    
    import java.io.*;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    
    /**
     * 根据文件生成MD5码的工具类
     * Author:李小白
     */
    public class MD5Util {
    
        /**
         * 辅助方法
         * @param filename
         * @return
         */
        private static byte[] createChecksum(String filename) {
            InputStream fis = null;
            try {
                fis = new FileInputStream(filename);
                byte[] buffer = new byte[1024];
                MessageDigest complete = MessageDigest.getInstance("MD5");
                int numRead = -1;
    
                while ((numRead = fis.read(buffer)) != -1) {
                    complete.update(buffer, 0, numRead);
                }
                return complete.digest();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (NoSuchAlgorithmException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (null != fis) {
                        fis.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return null;
    
        }
    
        /**
         * 生成文件的MD5码
         * @param filePath 文件路径
         * @return 该文件的MD5码
         */
        private static String generateMD5(String filePath){
            if (!new File(filePath).isFile()) {
                System.err.println("Error: " + filePath
                        + " is not a valid file.");
                return null;
            }
            byte[] b = createChecksum(filePath);
            if(null == b){
                System.err.println(("Error:create md5 string failure!"));
                return null;
            }
            StringBuilder result = new StringBuilder();
    
            for (int i = 0; i < b.length; i++) {
                result.append(Integer.toString((b[i] & 0xff) + 0x100, 16)
                        .substring(1));
            }
            return result.toString();
        }
    
        /**
         * 根据文件,在同一文件夹下生成相应的MD5文件,文件名相同,仅后缀名不同
         * 比如文件为helloworld.txt,生成MD5文件:helloworld.md5
         * @param filePath 文件绝对路径
         */
        public static void generateMD5File(String filePath) throws IOException {
            //获得该文件实例
            File file = new File(filePath);
    
            //获得该文件的MD5码
            String md5code = generateMD5(filePath);
    
            //获得该文件的文件夹路径
            String directoryPath = file.getParentFile().getAbsolutePath();
    
            //生成该文件对应的MD5文件的文件名
            String md5FileName = file.getName().substring(0, file.getName().lastIndexOf(".")) + ".md5";
    
            //获得该文件对应的MD5文件的绝对路径
            String md5FilePath = directoryPath + File.separator + md5FileName;
    
            //生成MD5文件
            File md5File = new File(md5FilePath);
            if(!md5File.exists()){
                md5File.createNewFile();
            }
    
            //文件写入MD5码的FileWriter类
            FileWriter fileWriter = new FileWriter(md5File);
            //将MD5码写入到MD5文件中
            fileWriter.write(md5code);
            //刷新流
            fileWriter.flush();
            //关流
            fileWriter.close();
    
            //打印提示信息
            System.out.println("创建MD5文件成功:" + md5FilePath);
        }
    
    
        /**
         * 输入文件夹名称,将该文件夹下所有的文件都生成同名的MD5文件
         * @param directoryPath
         */
        public static void generateMD5Files(String directoryPath) throws IOException {
            //创建文件夹实例
            File directory = new File(directoryPath);
            //文件数组
            File[] files = null;
    
            if(directory.isDirectory()){
                //获得所有文件
                files = directory.listFiles();
                //分别为每一个文件创建MD5文件
                for(int i=0; i<files.length; i++){
                    generateMD5File(files[i].getAbsolutePath());
                }
            }else{
                System.err.println("不是文件夹,请检查路径!");
                return;
            }
    
        }
    
    
        /**
         * 测试类
         * @param args
         * @throws IOException
         */
        public static void main(String[] args) throws IOException {
            //输入文件的绝对路径,生成该文件同一文件夹下的相同文件名,后缀名为.md5的文件
            generateMD5File("C:\\Users\\李小白\\Desktop\\MD5\\helloworld.txt");
            
            //输入文件夹的绝对路径,生成该文件夹下所有文件的MD5文件,该文件夹的文件数多一倍
            generateMD5Files("C:\\Users\\李小白\\Desktop\\MD5");
        }
    
    }
    
    展开全文
  • java快速生成文件的MD5算法 MD5Util java

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

    也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                   
    package cn.hlgc.mail;

    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();
       }
    }

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

       File big = new File("E:/游戏/冲绳那霸.rar");

       String md5=getFileMD5String(big);

       long end = System.currentTimeMillis();
       System.out.println("md5:"+md5+" time:"+((end-begin)/1000)+"s");
    }

    /**
    * 适用于上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);
    }
    }
               

    给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

    这里写图片描述
    展开全文
  • * 获取一个文件的md5值(可处理大文件) * @return md5 value */ public static String getMD5(File file) { FileInputStream fileInputStream = null; try { MessageDigest MD5 = MessageDigest.g.
    public class Md5CaculateUtil {
    
        //这里给前端要求的头像图片的MD5
    		String imgFilePath =     userInfo.getJSONArray("CUR_RESULT").getJSONObject(0).getString("XXXX");
    		if(imgFilePath!=null) {
    		File file = new File(imgFilePath);
    		String MD5 = getMD5(file);
    		userInfo.getJSONArray("CUR_RESULT").getJSONObject(0).put("MD5", MD5);
    		}
    
    
     
        /**
         * 获取一个文件的md5值(可处理大文件)
         * @return md5 value
         */
        public static String getMD5(File file) {
            FileInputStream fileInputStream = null;
            try {
                MessageDigest MD5 = MessageDigest.getInstance("MD5");
                fileInputStream = new FileInputStream(file);
                byte[] buffer = new byte[8192];
                int length;
                while ((length = fileInputStream.read(buffer)) != -1) {
                    MD5.update(buffer, 0, length);
                }
                return new String(Hex.encodeHex(MD5.digest()));
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            } finally {
                try {
                    if (fileInputStream != null){
                        fileInputStream.close();
                        }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

     

    展开全文
  • 点击去之后可以得到一串密文“b8d8d49d8178734124c4ff6f3a409d3d”,这串密文的作用就是验证下载的文件是否安全,当下载的文件经过了修改之后得到的值就和官方网站公布的md5串不一致了,以此来校验下载的文件是否是...
  • 之所以发出这篇博客,因为... 新总监来了,项目要上线,以前都没听旧总监提起要做什么打包生成MD5文件;一下子就蒙了o(* ̄︶ ̄*)o,主要原因还是因为我太菜O(∩_∩)O哈哈~ 因为项目要上线,很多工作要做,总监也...
  • JAVA文件MD5生成

    2013-06-03 17:42:36
    文件传输时候,为了保证文件是合法有效,经常会...并且做断点续传时候这一点也是挺重要,其实JAVA处理这方面也挺不错,可是我搜了半天,也没有搜到一个用JAVA的文件MD5生成程序,有也只是命令行模式
  • 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; impor...
  • package cn.hlgc.mail;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.nio.MappedByteBuffer;import java.nio.channels.FileChannel;import java.security.MessageDig
  • 能在windows下运行exe文件,电脑必须装java环境,没有话自行百度,用java语言开发,要源码留下邮箱
  • 生成文件的MD5哈希码

    千次阅读 2019-08-05 10:18:01
    import org.springframework.util.DigestUtils;...import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream;...
  • 生成文件的Hash码MD5

    2014-11-04 18:42:05
    Java程序。可以生成文件的MD5哈希值。生成的Hash值可保存到txt文件中。程序完全可运行。
  • 并且做断点续传时候这一点也是挺重要,其实JAVA处理这方面也挺不错,可是我搜了半天,也没有搜到一个用JAVA的文件MD5生成程序,有也只是命令行模式下,没有一个GUI模式,所以就写了一个GUI,方便使用,只用...
  • java生成MD5校验码

    2017-06-13 14:07:00
    Java中,java.security.MessageDigest (rt.jar中)已经定义了 MD5 计算,所以我们只需要... 下面是一个可生成字符串或文件MD5校验码例子,测试过,可当做工具类直接使用,其中最主要是getMD5String(String...
  • Java生成MD5

    万次阅读 2015-03-25 11:37:15
    MD5是什么 ...而且这个下载页面,很可能会在某一个地方,写了一句,此文件的MD5值为XXXXXXXXX。这有什么作用呢? 白话白话:md5,其实就是一中算法。可以将一个字符串,或文件,或压缩包,执行md5后
  • JAVA生成MD5校验码

    2014-11-04 21:40:08
    今天在工作中需要生成一个文件的MD5码用作文件上传的一个参数,MD5码是一个用来校验文件或者文本内容完整性一个常用的特征码。 MD5码详细介绍:[url]http://baike.baidu.com/view/1493720.htm?fr=aladdin[/url] ...
  • Java MD5生成

    2016-05-10 14:02:39
    这是使用JavaSwing写的一个MD5生成器。 项目名:create_md5 ...(1)获取指定文件的MD5值; (2)获取指定一段文本的MD5值 说明:本文中,MD5值使用十六进制位串表示。 如何获取文件的MD5值呢? Java...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 344
精华内容 137
关键字:

java生成文件的md5

java 订阅