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     
  • 相关阅读:
    java传值问题.
    方法重载
    java中各种运算符
    java中各种运算符
    java网址
    对象的初始化顺序
    Exploit,shellcode经验技巧杂谈
    关于16位的OS尝试
    window系统下的远程堆栈溢出 《实战篇》
    Exploit,shellcode经验技巧杂谈
  • 原文地址:https://www.cnblogs.com/DreamDrive/p/5760360.html
Copyright © 2011-2022 走看看