<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 19, comments - 53, trackbacks - 0, articles - 283
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    java MD5加密

    Posted on 2009-05-12 18:13 Gavin.lee 閱讀(309) 評(píng)論(0)  編輯  收藏 所屬分類: java SE & EE

    package com.Gavin.tools.util.jiami;

    import java.io.BufferedInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.security.MessageDigest;

    /**
     * MD5 data generate tool class
     * File / String 
     * @author Gavin.lee
     * @date 09-5-12 pm
     *
     */


    public class MD5Generator {
     
     private static InputStream createInputStream(File file) {
      InputStream is = null;
      try {
       is = new BufferedInputStream(new FileInputStream(file));
      } catch(Exception e) {
       e.printStackTrace();
      }
      return is;
     }
     
     private static String generateMD5ForFile(File file) {
      InputStream is = createInputStream(file);
      byte[] buf = new byte[4096];
      try {
       MessageDigest md = MessageDigest.getInstance("MD5");
       int count = 0;
       while((count = is.read(buf)) > 0) {
        md.update(buf, 0, count);
       }
       byte[] md5 = md.digest();
       is.close();
       buf = null;
       return md5HashToString(md5);
      } catch (Exception e) {
       e.printStackTrace();
      }
      
      return null;
     }
     
     private static String generateMD5(byte[] data, int offset, int len) {
      if(data.length == 0) {
       return "";
      }
      
      try {
       MessageDigest md = MessageDigest.getInstance("MD5");
       md.update(data, offset, len);
       byte[] md5 = md.digest();
       return md5HashToString(md5);
      } catch (Exception e) {
       e.printStackTrace();
      }
      
      return null;
     }
     
     private static String md5HashToString(byte[] input) {
      StringBuffer strBuf = new StringBuffer();
      int value;
      for(int i = 0; i < input.length; i++) {
       value = input[i];
       value = value > 0 ? value : value + 256;
       String str = Integer.toHexString(value);
       if(str.length() < 2)
        str = "0" + str;
       strBuf.append(str);
      }
      return strBuf.toString();
     }
     
     public static String getMD5Value(File file) {
      return generateMD5ForFile(file);
     }
     
     public static String getMD5Value(String src) {
      if(src == null) {
       return null;
      }
      if(src == "") {
       return "";
      }
       
      byte[] data = src.getBytes();
      return generateMD5(data, 0, data.length);
     }
     
     public static void main(String[] args) {
      //文件加密
      String file = "c:\\test.txt";
      long tmOrg = System.currentTimeMillis();
      String md5  = getMD5Value(new File(file));
      System.out.println("MD5: " + md5);
      long tmLast = System.currentTimeMillis() - tmOrg;
      System.out.println("Use time :" + tmLast + " ms");
      
      //串加密
      String str = "pass";
      System.out.println(getMD5Value(str));
      str = "password";
      System.out.println(getMD5Value(str));
      str = getMD5Value(str);
      System.out.println(str);
      
     }
    }

    主站蜘蛛池模板: 91亚洲精品第一综合不卡播放| 亚洲天堂一区二区| 男女一边桶一边摸一边脱视频免费| 亚洲精品第一国产综合精品99| 国产精品小视频免费无限app| 亚洲好看的理论片电影| 久久久久久久免费视频| 国产成人亚洲综合在线| 亚洲欧洲第一a在线观看| 麻豆国产入口在线观看免费| 九九热久久免费视频| 亚洲五月综合网色九月色| 亚洲午夜无码AV毛片久久| 6080午夜一级毛片免费看| 免费看黄网站在线看 | 亚洲国产美女精品久久| 国产午夜无码视频免费网站| 久久国产精品一区免费下载| 亚洲成av人无码亚洲成av人| 亚洲成a人片在线观看无码| 在线免费观看a级片| 国产免费爽爽视频在线观看 | 国产成人综合亚洲绿色| 亚洲天堂在线播放| 亚洲人成无码久久电影网站| 免费国产成人高清在线观看网站| sss在线观看免费高清| 亚洲一卡2卡3卡4卡5卡6卡| 亚洲av中文无码乱人伦在线r▽| 日韩免费电影在线观看| 无码国产精品一区二区免费3p | 国产啪精品视频网站免费尤物 | 两个人看的www免费视频中文| 亚洲日韩AV一区二区三区中文 | 亚洲一级特黄无码片| 一个人免费观看在线视频www| 全免费a级毛片免费看| 乱爱性全过程免费视频| 欧美日韩亚洲精品| 亚洲天堂2017无码中文| 亚洲欧洲日产国码在线观看|