zoukankan      html  css  js  c++  java
  • Java计算文件的SHA码和MD5码

     可参考:http://blog.csdn.net/hudashi/article/details/8394158

     1     /**
     2      * 计算文件的MD5码
     3      * @param file
     4      * @return
     5      */
     6     public static String getMD5(File file) {
     7         FileInputStream fis = null;
     8         try {
     9             MessageDigest md = MessageDigest.getInstance("MD5");
    10             fis = new FileInputStream(file);
    11             byte[] buffer = new byte[8192];
    12             int length = -1;
    13             System.out.println("开始算");
    14             while ((length = fis.read(buffer)) != -1) {
    15                 md.update(buffer, 0, length);
    16             }
    17             System.out.println("算完了");
    18             return bytesToString(md.digest());
    19         } catch (IOException ex) {
    20             Logger.getLogger(MD5Util.class.getName()).log(Level.SEVERE, null, ex);
    21             return null;
    22         } catch (NoSuchAlgorithmException ex) {
    23             Logger.getLogger(MD5Util.class.getName()).log(Level.SEVERE, null, ex);
    24             return null;
    25         } finally {
    26             try {
    27                 fis.close();
    28             } catch (IOException ex) {
    29                 Logger.getLogger(MD5Util.class.getName()).log(Level.SEVERE, null, ex);
    30             }
    31         }
    32     }
    33 
    34     /**
    35      * 得到文件的SHA码,用于校验
    36      * @param file
    37      * @return
    38      */
    39     public static String getSHA(File file) {
    40         FileInputStream fis = null;
    41         try {
    42             MessageDigest md = MessageDigest.getInstance("SHA");
    43             fis = new FileInputStream(file);
    44             byte[] buffer = new byte[8192];
    45             int length = -1;
    46             System.out.println("开始算");
    47             while ((length = fis.read(buffer)) != -1) {
    48                 md.update(buffer, 0, length);
    49             }
    50             System.out.println("算完了");
    51             return bytesToString(md.digest());
    52         } catch (IOException ex) {
    53             Logger.getLogger(MD5Util.class.getName()).log(Level.SEVERE, null, ex);
    54             return null;
    55         } catch (NoSuchAlgorithmException ex) {
    56             Logger.getLogger(MD5Util.class.getName()).log(Level.SEVERE, null, ex);
    57             return null;
    58         } finally {
    59             try {
    60                 fis.close();
    61             } catch (IOException ex) {
    62                 Logger.getLogger(MD5Util.class.getName()).log(Level.SEVERE, null, ex);
    63             }
    64         }
    65     }
    66     
  • 相关阅读:
    LA 3938 动态最大连续和 线段树
    UVA 11235 频繁出现的数值 RMQ
    LA 4329 ping-pong树状数组
    LA 3027 合作网络 并查集
    vue-url传参
    vue打开新页面的几种方式
    父子组件传参
    vue--按钮级别的权限控制+插件的使用
    小程序填坑
    webpack小试牛刀
  • 原文地址:https://www.cnblogs.com/DreamDrive/p/5760360.html
Copyright © 2011-2022 走看看