<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 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    java MD5加密

    Posted on 2009-05-12 18:13 Gavin.lee 閱讀(309) 評論(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);
      
     }
    }

    主站蜘蛛池模板: 美女黄网站人色视频免费| 亚洲精品自偷自拍无码| 在线涩涩免费观看国产精品| vvvv99日韩精品亚洲| 麻豆视频免费观看| 亚洲AV日韩AV天堂一区二区三区| 久久精品国产免费| 亚洲AV区无码字幕中文色| 精品一区二区三区免费毛片爱 | 亚洲第一成人在线| 免费AA片少妇人AA片直播| 国产亚洲福利在线视频| 四虎影院免费在线播放| 黄色大片免费网站| 亚洲午夜久久久久久久久电影网| 在线观看人成视频免费无遮挡| 亚洲AV日韩AV永久无码久久| av无码久久久久不卡免费网站| 亚洲 暴爽 AV人人爽日日碰| 免费国产成人午夜私人影视| 岛国岛国免费V片在线观看| 亚洲国产精品自在线一区二区 | 在免费jizzjizz在线播| 亚洲卡一卡2卡三卡4麻豆| 美女被免费视频网站a国产| 精品国产日韩亚洲一区在线| 亚洲伊人久久精品影院| 最近中文字幕无免费| 亚洲另类无码专区丝袜| 中文字幕亚洲不卡在线亚瑟| 最近2019免费中文字幕视频三| 亚洲а∨天堂久久精品9966| 亚洲成网777777国产精品| 中国国产高清免费av片| 2022年亚洲午夜一区二区福利| 成人免费午间影院在线观看| 中文字幕av免费专区| ass亚洲**毛茸茸pics| 亚洲国产小视频精品久久久三级| 99精品视频免费观看| 亚洲AV无码一区二区三区鸳鸯影院|